![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam zamiar zrobić shoutbox oparty o bazę danych MySQL. Jednak muszę wziąć pod uwagę, że w jednym momencie mnóstwo osób będzie czytało (shoutbox byłby w czasie rzeczywistym - co 1 sec pobieranie wpisów za pomocą ajax lub podczas dodania wpisów) jeżeli tak to w ciągu sekundy wykona się 1000 zapytań dla tysiąca userów nie piszących lub 3000 zapytań dla userów piszących. Jak należy to zrobić, aby było to szybkie, optymalne i bez lagów. Obecnie mam tak, że co pół sekundy za pomocą ajax ładuje plik txt z wpisami, a cron co 2 min wykonuje pętle trwająca 118 sec ( sleep(1); po każdej iteracji ), jednak są lagi w tym. Jakieś sugestie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Znów będę polecał shoutbox nospora, bo został on napisany bardzo optymalnie. W dziale Gotowe rozwiązania w Algorytmy, klasy funkcje masz temat założony przez ~nospora pod tytułem Shoutbox (IMG:style_emoticons/default/smile.gif) Podejrzyj sobie jak on to rozwiązał. Z tego co kojarze do pliku zapisywał właśnie tak jak thek mówi znacznik czasu albo id ostatniej wypowiedzi (IMG:style_emoticons/default/smile.gif)
Aha, jeśli nie chcesz używać mysql, wydaje mi się że najlepszym wyjściem byłoby użycie wydajnego memcache. Bardzo prosta implementacja tego jest w php, ale na serwerze musisz mieć zainstalowany moduł. BTW. Js niedługo dostanie obsługę socketów (albo już ma, ja nie w temacie) więc możesz się nimi zainteresować (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował bim2 7.07.2010, 13:52:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 19:26 |