Ajax long polling - szerver oldalról nézve
Sziasztok, "azonnali" reakciót szeretnék a kliens oldalon elérni. Erre a Ajax long polling megoldást tökéletesnek tűnik. A kliens oldali elkészítéssel semmi gond sincsen.
Ám a szerver oldalon már bajba vagyok. Mit csinál a szerver eközben?
Ha egy adatbázistáblában megváltozik az egyik érték, vagy új rekord kerül be a táblába, akkor arról ugye csak úgy értesülhetek, ha néhány másodpercenként kiadok egy új lekérdező query-t az adatbázisszerver felé? Néhány ilyen és nem fog meghalni a szerver?
Hülye kérdés: ilyen long polling PHP és a DB között nincsen? :)
Vagy milyen megoldással lehet elérni, hogy a néhány perces reakció időt csökkentsem ezzel a long polling technikával, úgy hogy közben a szervert se öljem meg? :)
A válaszokat előre is köszönöm!
■ Ám a szerver oldalon már bajba vagyok. Mit csinál a szerver eközben?
Ha egy adatbázistáblában megváltozik az egyik érték, vagy új rekord kerül be a táblába, akkor arról ugye csak úgy értesülhetek, ha néhány másodpercenként kiadok egy új lekérdező query-t az adatbázisszerver felé? Néhány ilyen és nem fog meghalni a szerver?
Hülye kérdés: ilyen long polling PHP és a DB között nincsen? :)
Vagy milyen megoldással lehet elérni, hogy a néhány perces reakció időt csökkentsem ezzel a long polling technikával, úgy hogy közben a szervert se öljem meg? :)
A válaszokat előre is köszönöm!
Ha egy adatbázistáblában
eseményvezérelve?
Prezisztens réteg
Egyébként a PHP nem igazán alkalmas long polling-ra, mivel rengeteg memóriát eszik. Képzeld el, hogy egy PHP szál mondjuk fogyaszt 10Mb memóriát, és a gépben van 1Gb. Ekkor összesen egyszerre 100 long polling tud futni, és még nem szóltunk arról, hogy magát a weboldalt is ki kellene szolgálni. Ilyen feladatokra sokkal jobb egy folyamatosan futó alkalmazás, ami csak a long pollingot kezeli, például Java-ban, vagy Node.js alatt JavaScript-ben megírva.
Re: Prezisztens réteg
Valószínűleg utána megyek a memcached-nek. Sajnos még nem foglalkoztam ezzel, úgy tűnik, hogy itt az ideje! :)
A PHP lecserélése jelenleg esélytelen vállalkozás lenne, pedig az általad leírt memória gondok nagyon elképzelhetőnek tűnik... kicsit elbizonytalanítottál. :(
Socket