1
我正在運行Laravel和Beanstalkd隊列驅動程序。我有一些長時間運行的工作,我遇到了一個問題,大約60秒左右後,工作將從保留狀態轉回就緒狀態。該作業仍在運行並完成而沒有問題。問題是,如果添加了另一個作業,它將不會運行,而是返回到就緒的前一個作業將運行。如果在添加另一個作業之前完成作業,則不是問題。Beanstalkd作業切換到「就緒」狀態
這是我的代碼。
隊列推:
Queue::push('myApp\Processors\BuildQuick', $job);
工作代碼:
public function fire($job, $data) {
try {
//some code here that calls another class to build an amazon ec2
} catch (\Exception $ex) {
\Logging::joblog($ex->getMessage(), "ERROR");
$job->delete();
return;
}
}
$job->delete();
\Logging::joblog("Job Completed Successfully", "INFO");
}
更新: 我有一個睡眠計時器測試這一點,它發生在每一次正好1分鐘。我知道它沒有拋出任何異常,我所有的代碼都是2分鐘睡眠。
總之,默認的'ttr'(運行時間)默認爲60秒。如果您有任何可能需要更長時間的工作,則需要在初始配置中添加一個「ttr」=> {number-of-seconds}。目前還沒有一種官方的,清潔的方式來設置每個工作崗位的TTR。 – 2015-02-25 11:58:32