我正在使用带有beanstalkd的Laravel 4.1在后台运行一些密集的Photoshop PSD文件处理 . 我还安装了phpBeanstalkdAdmin来监控队列中发生了什么 .
正在处理的工作大约需要7-10分钟,但我注意到我的一些工作重新启动,即使他们仍在忙着运行 .
密切关注phpBeanstalkdAdmin,我可以看到作业是 buried 当队列:listen拿起工作,但过了一段时间它被踢回来,到 ready .
要开始收听队列,我正在使用:
$ ./artisan queue:listen --queue=my_queue --memory=512 --timeout=600
在队列处理程序的fire()方法中,我只是用一个artisan命令启动
Artisan::call(
'tms:parse',
[
'--alias' => $data['alias'],
'--notify' => $data['email']
]
);
并打电话
if ($job != null) {
$job->delete();
}
一旦工作完成 . 但我无法弄清楚为什么在忙碌的工作中途就会被踢好 .
在预先配置的时间间隔内没有任何反应之后,Laravel是否会将工作恢复到准备状态?
1 回答
似乎这个问题已经解决了一段时间,但没有人打扰更新Laravel文档但是:
https://github.com/laravel/framework/pull/3766