Portál AbcLinuxu, 10. května 2025 02:11
Řešení dotazu:
nemôžem ju tým vypnúť alebo prekročiť to maximumJakto?
php -h
1.) dá sa, ale neviem ako dlho skript pobeží, takže šanca na timeout tu je opäť
2.) ako je myslené "refreshnes"? v okne browsera alebo nejako skript sám seba? (toto netuším)
3.) ajax funguje len v okne browsera (ja to spúšťam z cronu)
4.) nemám prístup na druhú stranu
$start_time = mktime(); function check_exe_time($step) { global $start_time; if( (mktime() - $start_time) >= 10) { if($step == 1) { //uloz to co tedka delas do dtb, souboru to je jedno } header("Location: http://www.example.com/cron_file.php?step=".$step); } return true; } if($_GET["step"] == 1) { //nacti predchozi praci } if($_GET["step"] == 1 OR !isset($_GET["step"])) { while($end) { //zpracovani jednotlivych polozek check_exe_time($step); } header("Location: http://www.example.com/cron_file.php?step=2); }Je celkem jedno jak to uděláš díky header:location by ti neměl dojít čas.
Ano, pak je ještě důležité to jakým způsobem se ten soubor v cronu volá, protože máš zakázaný php-cli tak musís použít nějaký jiný nástroj (lynx, wget,...) U nich je problém že defalutně mají nastavený nějaký maximální počet refreshů a pak si myslí, že je to chyba ve skriptu, protože je nekonečně zacyklen.
Já používám wget takto:
wget -O - --max-redirect 10000000 -w 5 http://www.example.com/cron_file.html?pass=1234AABB
-O - //neukladej nikam to co stahnes
--max-redirect 1000000 //maximalni pocet opakovani
-w 5 //mezi presmerovanim cekej 5 sekund (prepocitavam a taham data z externiho zdroje, takze to tolik nezatěžuje jejich server ani hosting, mám asi 150 opakování a jeden refresh mi zabere asi 8s -> 3s zpracování + 5s pauza).
(heslo tam je celkem užitečný, už se mi párkrát stalo, že jsem to spustil z prohlížeče a udělalo mi to celkem slušnej bordel )
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.