Cron feladat időkorlát beállítása?
Sziasztok!
Hogyan kell beállítani végtelen időkorlátot egy php cron feladathoz?
Eddig ezt adtam meg:
/usr/bin/wget http://domain.hu/olvasofajl.php
de nem fut végig mert egy fájlt olvas be és a fájl nagy kb a negyedéig olvas aztán leáll.
Köszi.
■ Hogyan kell beállítani végtelen időkorlátot egy php cron feladathoz?
Eddig ezt adtam meg:
/usr/bin/wget http://domain.hu/olvasofajl.php
de nem fut végig mert egy fájlt olvas be és a fájl nagy kb a negyedéig olvas aztán leáll.
Köszi.
Időkorlát
max_execution_time
konfigurációs változó beállításával pl. aphp.ini
fájlban vagy mondjuk.htaccess
-ben.Ezen kívül a
wget
is timeout-olni fog, ezt pedig a--timeout=0
illetve a specifikusabb--read-timeout=0
kapcsoló beállításával lehet megszüntetni (az alapértelmezett érték az utóbbira 900 másodperc).Beállítottam de...
<IfModule mod_php5.c>
php_value post_max_size 5M
php_value upload_max_filesize 5M
php_value memory_limit 300M
php_value max_execution_time 259200
php_value max_input_time 259200
php_value session.gc_maxlifetime 1200
</IfModule>
Semmi más nincs benne.
A cron parancs így néz ki:
/usr/bin/wget --read-timeout=0 http://domain.hu/olvasofajl.php
az olvasofajl.php pedig így kezdődik:
ini_set('max_execution_time', '900');
set_time_limit(900);
De nem megy....
Elkezd le futni de aztán abbahagyja.
ini_set('max_execution_time',
Átállítottam...
De 'kézi' futtatással maximum 2perc alatt lefut.
Nézd vissza
ini_get(...)
-el nézd vissza az értékeket! Memóriát is, illetve ami a szkript futásakor még érdekes lehet. Továbbá érdemes a fájlnyitás (beolvasás) előtt és után a felhasznált memóriát is nézni.A tárhelyed / vps-ed összes memóriája mennyi? Nehogy az legyen a gond, hogy az összes (többi) kérés elhasználta a RAM-ot, ide meg nem jutott már elég.
Csak kérdés: cron-nal miért nem közvetlenül a fájlt hívod, miért URL-t? (Így nem csak cron indíthatja, lehet, hogy ebből is futott több példány.)
set_time_limit
azaz híváskor nullázza a számlálót, és onnantól kezdve még x másodpercet fog futni.
(ez hasznos lehet batch ciklusos elszállós feldolgozásokkor pl)