Portál AbcLinuxu, 10. listopadu 2025 07:14
Ř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.