ugrás a tartalomhoz

szerveroldali esemény

eBandee · 2010. Dec. 16. (Cs), 10.17
Üdv!

Érdekelne, hogy létezik-e olyan technika, amivel megoldható, hogy egy cron-nal pl percenként futtatott php lefutása után, az oldalt éppen megtekintő felhasználók, az oldal újratöltése nélkül, megkapják a frissített infókat?

Ajax-al egyszerűen megoldható lenne, de azzal az a bajom, hogy ha mondjuk 1000 felhasználó nézi egyszerre az oldalt (ami be van tervezve), akkor az percenként 1000 aszinkron hívást jelentene, és valószinűleg percenként 1000 adatbázis lekérdezést is.

Ergo, valami olyan megoldás kellene, ami bizonyos szerver oldali esemény meghívásakor, egyfajta "üzenetszórásos" módszerrel kiküldi az infokat a böngészőknek...

Vagy ha ilyen nincs, akkor az érdekelne, hogy ha APC-vel a frissített adatokat folyamatosan memóriában tárolnám (ez esetben ugye nincs adatbázis kérés userenként), akkor mennyivel gyorsítaná az ajax kéréseket, illetve érdemes-e az APC-s irányt erőltetni?

A választ előre is köszönöm!
 
1

BOSH

janoszen · 2010. Dec. 16. (Cs), 12.14
XMPP-hez gyártottak egy BOSH nevű technológiát, de más néven Comet néven fut a technológia. Nemrég íródott erről cikk is. Ami az adatbázis lekérdezést illeti, használhatsz valamilyen message queue-t is, de unix socketekkel írhatsz sajátot is. (Ez utóbbi esetben viszont meg kell oldanod az üzenet bufferelést.)
2

Reverse Ajax

gabesz666 · 2010. Dec. 16. (Cs), 12.15
Sajnos a technológiát nem ismerem, de azt hiszem a reverse ajax-ra gondolsz. Eddig csak Java-s megvalósítást láttam. Nemrég volt róla blogmark itt a weblaboron.
3

Memcache, APC cache

Poetro · 2010. Dec. 16. (Cs), 12.36
Amennyiben felhasználó független cache-re van szükség, használhatsz egy fájlt, mint üzenettároló, fontos, hogy ezt akkor csak ritkán írd, és gyorsan zárd le, hogy mások tudják olvasni. Fájlon kívül használhatsz memória alapú adatbázisokat, ilyen például a Memcache, az APC cache, vagy például a Redis.
4

Cache, kérések elosztása időben

abesto · 2010. Dec. 16. (Cs), 12.40
A leírás szerint két probléma van: a sok adatbázis kérés, és a sok HTTP kérés. Ha a megjelenítendő eredményt percenként generálod, akkor nyugodtan cachelheted, ezzel megspórolod az adatbázis babrálását. Adott esetben a teljes küldendő választ is gyorsítótárazhatod, ilyenkor akár kaphat egy állandó URL-t és fájlt. APC-t még nem használtam, de a neve alapján (Opcode cache) nem feltétlenül ez a legjobb megoldás.

A másik probléma a sok HTTP kérés egész perckor. Egyszerű trükk: véletlenszerű másodperckor futtasd az AJAX frissítést. Könnyen skálázható megoldás (pl. ne egy perces, hanem kétperces intervallumból válasszon frissítési időt).
5

Nem tudtam mi a neve...

eBandee · 2010. Dec. 16. (Cs), 14.19
De mostmár tudom, és találtam rá egy !talán! jó megoldást. Ha lesz egy kis időm, letesztelem, hogy működik-e. Bár az oldalon levő demó elég meggyőzőnek tűnik.

Igy viszont nem kell sem apc, sem ajax... Gyors lesz mint a villám. :]

Kösz mindenkinek!