Autor | Zpráva | ||
---|---|---|---|
JardaB Profil |
#1 · Zasláno: 16. 7. 2019, 10:08:42
Zdravím,
řeším následující problém. Na hostingu isol.cz mám k dispozici prakticky neomezeného crona a potřebuji spouštět několik scriptů na jiném hostingu. Řešil jsem tak, že na straně hostingu s cronem jsem si udělal soubory s obsahem: <?php Header ("Location: http://mojedomena.cz/cil.php"); ?> Vše funguje, ale u jednoho ze scriptů se nevykoná. Resp. k přesměrování dojde, ale nevykoná se celý kód. Obsahuje složitější dotaz do mysql, který má odezvu při testu kolem 0.5 - 1 s. Když spustím script ručně i přes header, tak se vykoná vždy do konce. Je snad tento způsob přesměrování chybný nebo existují jiné okolnosti, které tento proces ovlivňují? |
||
N71 Profil * |
#2 · Zasláno: 16. 7. 2019, 10:30:19
Je možné, že webový cron má přísnější limity na dobu běhu. Zkus přidat do skriptu ignore_user_abort.
|
||
JardaB Profil |
#3 · Zasláno: 16. 7. 2019, 11:01:34
N71:
Vypadá to, že to pomohlo. Budu ještě testovat, případně se ozvu. Moc děkuji.. |
||
blaaablaaa Profil |
#4 · Zasláno: 16. 7. 2019, 11:23:53
Já když volám přes curl skripty a nechci čekat na výsledek, v hlavičce vrátím:
header("Connection: close\r\n"); header("Content-Encoding: none\r\n"); header("Content-Length: 1"); ignore_user_abort(true); |
||
JardaB Profil |
#5 · Zasláno: 16. 7. 2019, 11:32:45
blaaablaaa:
Díky, zkusím... |
||
N71 Profil * |
#6 · Zasláno: 16. 7. 2019, 12:51:14
blaaablaaa:
V podstatě prasárna. Nové řádky do hlaviček nepatří (PHP ti je odřeže). A s nesprávným (falešným) Content-Length můžou být akorát problémy. Stačí neposlat nic a browser na ten tvůj jeden byte bude čekat klidně až do timeoutu. Správně bys měl vrátit kód 204 No Content, ale především si pohlídat, aby PHP nepoužilo buffer a vrátilo hlavičky ještě před časově náročnou operací. |
||
Mlocik97 Profil |
#7 · Zasláno: 16. 7. 2019, 12:53:46
N71:
súhlas. |
||
blaaablaaa Profil |
#8 · Zasláno: 16. 7. 2019, 13:18:32
N71:
Nové řádky beru. Používám to, když uživatel nahraje fotku, kterou takto na pozadí zmenšuji (nahraje fotku, ja přes curl si zavolám tuhle stránku, nechám vypršet a nečekám na výsledek). Vím, že bych normálně měl použít nějakou MQ a řešit bokem, ale tady zrovna není k dispozici. |
||
Časová prodleva: 6 let
|
0