![]() |
![]() |
![]()
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: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Optymalizuj... Wysyłaj z zapytaniem AJAX choćby znacznik czasu ostatniej wypowiedzi widocznej dla usera po jego stronie. Dopóki jest on identyczny z ostatnim w bazie - nie rób nic/zwracaj coś co oznacza by klient nic nie robił, zostawiał wszystko jak było. Jeśl pojawią się nowe wpisy, będą one różne, co da sygnał do wysłania nowej wersji. Najlepiej jeszcze gdyby to co wygenerowano było wrzucane do cache'u.To zredukuje liczbę zapytań do bazy do jednego pomiędzy nowymi wpisami w shoutboxie. Reszta userów pobierać będzie wpisy z cache.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 22:43 |