Rularea scripturi PHP în fundal, wisereport

În cazul în care proiectul este în creștere, există sarcini de procesare a datelor mari consumatoare de resurse. De exemplu, analiza xlsx (Excel) Pretul pentru a actualiza prețurile, sau redimensiona fotografii de mari dimensiuni. Cazurile pot fi foarte diverse, atunci când nu doriți ca utilizatorul să aștepte până când script-ul va funcționa.

În acest post am spune cum să executați de execuție fundal scripturi PHP. Trebuie remarcat faptul că, fără utilizarea VPS (Virtual Private Server), care este, de shared hosting normală, această metodă nu funcționează. Strict vorbind, managerul a fost creat sub Linux, deși este posibil și corect de lucru pe FreeBSD. Chiar și cel mai probabil va funcționa, de asemenea.

În Manager, nimic complicat, el are, probabil, mai multe probleme cu privire la administrare. Să analizăm mai întâi de ceea ce este pe de o parte a sistemului de operare, care comenzile sunt utilizate:

ps -C = php o- pid, comanda =

Aici vom cere lista de procese cu numele php. Ceilalți parametri afectează afișarea rezultatelor, adică, vrem să vedem pid, și comanda imediat completă, inclusiv parametrii. Un exemplu de ieșire din această comandă:

12769 php /path/to/1.php /path/to/price.xlsx

Astfel, vom verifica pentru a vedea dacă o astfel de sarcină este deja în execuție, iar în cazul în care rulează, o repornire nu este efectuată în mod implicit. Dacă aveți nevoie pentru a rula în paralel cu o altă copie cu exact aceiași parametri, este posibil să se specifice un mod explicit.

php -d max_execution_time = 300 -f /pathto/1.php /pathto/price.xlsx> / dev / null 2> 1 $ Echo!

Aici vom rula PHP, care indică timpul maxim de funcționare de 300 de secunde, în care procesele noastre de fundal nu devin infinit. O simplă măsură de precauție, nimic mai mult. Următorul este calea către script-ul, apoi parametrii, dacă este necesar. Redirecționează ieșire la stdout în loc de „gaura neagră“, 2> # 038; 1 înseamnă că ne conduce, de asemenea, de ieșire la aceleași erori. Apropo, puteți redirecționa către un fișier prin >>, în scopuri de depanare. Dar vă sfătuiesc să script-uri de depanare înainte de a schapuskat în fundal. Cel mai important, ultima parte: # 038; lăsând în fundal și echo $! Doar obținem (retur) PID a procesului nou creat.

Asta e tot ce este acum codul de manager și un exemplu de utilizare:

articole similare