2010-10-22 77 views
3

我最初在Zend Forums發佈了這個問題,但認爲在這裏發佈也是明智的。什麼構成作業隊列中的重試?

準確地說,工作要重試會發生什麼?我嘗試了超時,50x響應代碼,並將狀態設置爲「失敗」。

我有一個創建一個工作一個簡單的腳本......

$job_url = 'http://localhost/consumer.php?time=' . microtime(true); 
$job_queue = new ZendJobQueue(); 

$job_options = array(
    'name' => 'Test Job' 
); 

$job_id = $job_queue->createHttpJob(
    $job_url, 
    array(), 
    $job_options 
); 

我試着通過去除consumer.php,從consumer.php內返回一個500來觸發任務的重試,和使用consumer.php比jqd.ini中的zend_jobqueue.http_job_timeout設置的120秒更長。這些都不會觸發重試。

所以,我問,究竟會觸發重試?

請幫忙。

+0

這個問題在Zend論壇上還沒有回答嗎? – systemovich 2011-01-10 12:57:48

回答

0

經過與Zend工程團隊的大量對話 - 通過ZendCon 2010的電子郵件,電話和親自訪問 - 發現問題的答案是Job Queue實用程序中的一個錯誤。

Zend Server 5.0.4版包含對作業隊列實用程序的修復,專門用於更好地處理來自HTTP錯誤的重試。

查看release notes

對不起,在清理這個問題上的延誤。