Futó php scripteket a háttérben, wisereport

Ha a projekt növekszik, vannak erőforrás-igényes adatfeldolgozási feladatokat. Például elemzése xlsx (Excel) Ár frissíteni az árakat, vagy az átméretezés nagy képek. Olyan esetek is nagyon változatos, ha nem akarjuk, hogy a felhasználó számára, hogy várjon, amíg a script működni fog.

Ebben a bejegyzésben elmondom, hogyan kell futtatni háttér végrehajtás PHP szkripteket. Meg kell jegyezni, hogy a használata nélkül VPS (Virtual Private Server), vagyis a szokásos megosztott tárhely, ez a módszer nem működik. Szigorúan véve, a menedzser jött létre Linux alatt, bár ez lehetséges és helyes munkahelyi FreeBSD alatt. Még valószínűleg működni fog is.

A menedzser, semmi bonyolult, valószínűleg több problémát kezeléshez. Nézzük először elemezni, hogy mi ez a része az operációs rendszer, mely parancsokat használjuk:

ps -C php -o pid =, command =

Itt kérünk a folyamat listán a neve php. A többi paraméter befolyásolja a kijelző eredmények, azaz a akarunk látni pid, és azonnal teljes parancs, beleértve azokat a paramétereket. A minta parancs kimenete:

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

Így ellenőrizze, hogy ha egy ilyen feladat már fut, és ha fut, egy újraindítás nem alapbeállítás. Ha mégis szükség lenne, hogy párhuzamosan fut egy másik példányt pontosan ugyanolyan paraméterekkel, akkor lehetséges egy explicit módon.

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

Itt fut a php, ami jelzi a maximális futási ideje 300 másodperc, hogy a háttér folyamatok nem válnak végtelen. Egy egyszerű óvintézkedést, semmi több. Következő az út a forgatókönyvet, majd a paramétereket, ha szükséges. Irányítja a szabvány kimenetre, ahelyett, hogy a „fekete lyuk”, 2> # 038; 1 azt jelenti, hogy mi is irányítja a kimenetet ugyanazokat a hibákat. By the way, akkor irányítsa át egy fájlba keresztül >>, hibakeresés céljából. De azt tanácsolom, hogy a debug script előtt schapuskat a háttérben. A legfontosabb, hogy az utolsó rész: # 038; így a háttérben, és echo $! Csak levezetjük (vissza) PID az újonnan létrehozott folyamat.

Ez minden, amit most menedzser kód és egy példa a használatra:

Kapcsolódó cikkek