Curl_exec zamanaşımı komut kesebilirler?

4 Cevap php

Bazı arka uç görevler için PHP script kullanıyorum (web değil) ve ben bazen curl_exec bulunan herhangi bir hata çıktılamak olmadan script yürütme sona erecektir. Ben sonsuza kadar bir döngü içinde çalıştırmak için komut dosyası ve bu konuda herhangi bir fikir istiyorum?

4 Cevap

Eğer işlemi başlar ve sonsuz çalışabiliyor olmak istiyorsanız, yapmanız gerekenler:

set_time_limit(0);

Aksi takdirde, kısa sürede komut olarak komut dosyası bir hata ile çıkar 30 saniye (her ne max_execution_time php.ini belirtir ya) için tükendi. Bu, örneğin, komut yapıyor olabilir şey kesmeleri bir getiri elde curl_exec().

(Yapıyorsun gibi görünüyor aslında ne olduğu) bir cini yazmak için PHP ile ilgili bir uyarı can be found here.

Bu kolay bir zaman aşımı sorunu olabilir.

Örneğin (Bir web sitesi alma için) kıvrılma zaman aşımını ayarlayabilirsiniz 60 saniye ile hiç

curl_setopt($ch, CURLOPT_TIMEOUT, 60);

Sonra 60 saniye daha yüksek bir şey, örn PHP zaman aşımı ayarlamak gerekir

set_time_limit(90);

Bu zaman aşımı nedenle Unix çok az gerekir, gerçek zamanlı Windows ve Unix üzerinde CPU zamanıdır. Bu, aksi takdirde genel limit ve sonsuz döngü için yeterli asla sizin döngü içinde PHP zaman aşımı süresini ayarlamak için önemlidir.

do {
    set_time_limit(90);
    // curl stuff
} while (true);

Eğer hata raporlama setine sahip olduğundan emin olun, sizin php dosyasının üstüne koymak:

ini_set('display_errors', true);
error_reporting(E_ALL);

Ayrıca scriptin yürütme süresini uzatabilirsiniz:

ini_set('max_execution_time', 50000);

Senin php, sorunu izlemek için CURLOPT_VERBOSE değişkeni ayarlayabilirsiniz:

curl_setopt($curl, CURLOPT_VERBOSE, TRUE);

Bu daha sonra STDERR, ya CURLOPT_STDERR kullanarak belirtilen dosyaya kaydeder:

curl_setopt($curl, CURLOPT_STDERR, './path/to/file.log');

Komut satırında, aşağıdaki anahtarları kullanabilirsiniz:

* --verbose to report more info to the command line
* --trace <file> or --trace-ascii <file> to trace to a file

Sen kullanabilirsiniz - iz-zaman / dosya çıkışları verbose zaman damgaları prepend