Autor | Zpráva | ||
---|---|---|---|
Micha 1966 Profil * |
#1 · Zasláno: 29. 7. 2015, 10:09:36
Zdravim, potreboval by som pridat do cronu spustanie php scriptu ale tak, ze mi ho cron spracuje kazdu minutu, ale pokial je cron spusteny, ze za poslednu minutu nespracoval este tento script, tak druhy krat ho uz nespusti. Mam plny pristup k serveru, vedel by niekto helfnut ako na to?
|
||
Alphard Profil |
#2 · Zasláno: 29. 7. 2015, 10:55:09
To bude myslím lepší řešit na úrovni toho PHP scriptu, než z vnějšího prostředí. Script by se sice spustil znovu, ale vzápětí by se po krátké kontrole sám ukončil. K implementaci použijte souborové zámky, to je už vymyšlené.
Pokud nechcete tento mechanismus implementovat do přímo do vašeho scriptu, může existovat jako vnější kontejner, který spouští libovolný script a čeká na jeho dokončení (popř. i spadnutí) s uvolněním zámku. Tenhle script pak může být napsaný v libovolném jazyce a fungovat univerzálně. A na to už existují nějaká hotová řešení, např. http://www.kfirlavi.com/blog/2012/11/06/elegant-locking-of-bash-program/. |
||
Keeehi Profil |
#3 · Zasláno: 29. 7. 2015, 12:35:13
Micha 1966:
Jako že pokud ten původní script běží déle než 60 vteřin, tak ten druhý nespouštět? <?php $fp = fopen("lockfile", "r+"); if (!flock($fp, LOCK_EX)) { exit; } /* critical code */ flock($fp, LOCK_UN); fclose($fp); Takto se script sice podruhé spustí, ale hned na začátku zjistí, zda předchozí ještě běží a pokud ano, tak se ukončí. |
||
Micha 1966 Profil * |
#4 · Zasláno: 29. 7. 2015, 13:52:04
Dakujem, vyskusam
|
||
Časová prodleva: 10 let
|
0