Autor | Zpráva | ||
---|---|---|---|
blazej44800 Profil |
#1 · Zasláno: 27. 11. 2013, 19:58:46
Ahojte
Mám Nginx 1.4.4 a PHP 5.5.6. Robím long polling požiadavky. Problém je, že ak zrušil pomocou Ajaxu požiadavku (request.abort()) PHP skript sa neukončí a ďalej sa spracováva (otestované pridaním fcie mail() na koniec skriptu - mail stále príde). Bojím sa, že pri reálnom trafficu by sa server mohol preťažiť neuzavretými požiadavkami. Samozrejme som skontroloval ignore_user_abort(false); ale bez žiadného výsledku. Je možné, že treba ešte niečo nastaviť v nginx? location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } Vďaka za rady ;) |
||
Davex Profil |
#2 · Zasláno: 28. 11. 2013, 18:33:33
V dokumentaci k funkci
ignore_user_abort() se v poznámce píše, že PHP nezjistí ukončení spojení dokud nedojde k odeslání dat klientovi.
Během čekání by mělo stačit pravidelně spouštět flush() .
$cekej = 10; while ($cekej--) { sleep(1); flush(); } |
||
Časová prodleva: 10 let
|
0