Ajax futás leáll - milyen hibalehetőségek vannak?
Van egy ajaxos ellenőrző szkriptem, ami akár 7/24 tudna futni, de mindig leáll random. A szkript működést egy kis mozgó pötty jelzi, ez mozog folyamatosan, de az ajax mögött lévő php funkció leáll.
Ha újra indítom a szkriptet onnan, ahol leállt, megint megy adott ideig, aztán megint lehal egyszer csak.
A betöltött adatokban nem lehet hiba: ha egy olyan adatsort indítok el, ahol a szkript éppen leállt, újraindításnál simán lefut az ellenőrzés az adott adatokkal (vagyis nem azok akasztják meg).
A hiba előjön:
LAMP (Linux)-on, XAMP-on és WAMP-on (Windows7), teljesen különböző shared hostingon, ingyen tárhelyen, és VPS-en is, amit lehetett leteszteltem.
Hogyan lehet rájönni arra, hogy mitől akad be az ajaxos cucc?
Mitől fordulhat elő ilyen hiba?
Előre is köszi minden tippet.
re: Ajax futás leáll - milyen hibalehetőségek vannak?
Tehát ha jól értem, akkor ebben a szkriptben a PHP is folyamatosan fut elvileg. Nos, a php.ini-ben meg van szabva egy max_execution_time, eddig futhat egy php szál meghívás után (szerintem ezt állítsd feljebb). A PHP alapból nem nagyon szereti, hogyha folyamatosan fut, nem is erre lett készítve-tervezve, inkább kérés-válasz-szerű dolgokhoz. Erre nem PHP való alapból. Ha mindenképpen PHP-val akarod, akkor vagy az előbbi (max_execution_time feljebb állítása nagyon magas értékre), vagy inkább róbáld meg úgy, hogy az AJAX kliensoldali része kérdezgeti folyamatosan a szervert, és akkor mindig indul egy új szál.
Lehet, hogy félreértettem, hogy pontosan mi, hol áll le.
re: Ajax futás leáll - milyen hibalehetőségek vannak?
Első körben, ha be van kapcsolva PHP error logolás, akkor meg kell nézni az error log-ot, ha nincs bekapcsolva, akkor be kell kapcsolni. Az egyes hívásoknál a PHP mennyi ideig fut? Milyen módban futtatod? Nézted már a PHP futási idő limit beállításodat? Ha pl. fcgi-ben futtatod, akkor fcgid futási limiteket is célszerű megnézni.
re: Ajax futás leáll - milyen hibalehetőségek vannak?
A művelet így néz ki logikailag kb:
$.ajax funkcio.php meghívása 1. művelet
success: {
$.ajax funkcio.php meghívása 2. művelet
success: {
$.ajax funkcio.php meghívása 3. művelet
success:
}};
10 művelet van összesen. Ha minden lefutott, akkor indul előröl az egész a következő adatsorral. Csak ugye random megáll, van hogy az 1-es, van hogy a 3-as, vagy 8-asnál, stb.. Aztán megy fél óráig simán, aztán legközelebb meg megáll 3 lekérésenként. Nem bírok rájönni, mi lehet a baja. :huh:
Most állok neki a logolásnak, meg amiket írtatok még...
re: Ajax futás leáll - milyen hibalehetőségek vannak?
Ezt nem is ertem miert bongeszoben futtatod. Parancssorbol ha elinditod a PHP-t akkor nincs futasi ido limit. Bar valoszinuleg masik nyelven kellene az egeszet megirni.