Cron a přesměrování, aneb jak na procesy v pozadí

Provádíte nějakou operaci volanou cronem? A potřebujete se přesměrovat na jiný skript, popřípadě spustit nějaký skript v pozadí? Je tu snadné řešení, opět cURL.


Téměř vše k tomuto tématu bylo řečeno v úvodu. Pokud spouštíte skript cronem, pochopitelně odeslání hlavičky header s novou location pro přesměrování na jiný skript je marné. Tomu rozumí jen prohlížeč a ten v případě volání cron démonem neběží.

Pomocí cURLu zavoláme skript v pozadí, čímž nahradíme přesměrování. Tady je však potřeba vypnout uživatelské zastavení běhu skriptu funkcí ignore_user_abort(), je to vlastnost která zastaví skript v případě, že uživatel uzavře prohlížeč nebo tlačítkem stop zastaví další běh skriptu.

Celý skript, by pak mohl vypadat následovně.

  1. ignore_user_abort();
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_HEADER, 0);
  5. curl_exec($ch);
  6. curl_close($ch);

 

podobné články

01.12.2008Cron a kdo vlastně spouští skript? Démon v pozadí nebo uživatel v prohlížeči?(14%)
27.06.2008XML-RPC přes CURL, aneb jak odeslat XML soubor vzdálené službě, když nemáme allow_url_fopen(14%)
27.06.2008CURL, jak načíst obsah url, když nefunguje file_get_contents(14%)

komentáře

RSS Komentáře k článku RSS Komentáře   Add to Google
Jméno
Název
Text
Lze používat Texy! syntax. Příklad syntaxe: "text odkazu":odkaz, **tučně**, *kurzíva*, `code`. PHP kód uzavírejte do <?php ... ?> a JavaScript do <script> ... </script>