【发布时间】:2014-06-17 21:41:00
【问题描述】:
我使用 Laravel 4.1 和 beanstalkd 在后台运行一些密集的 Photoshop PSD 文件处理。我还安装了phpBeanstalkdAdmin 来监控队列中的情况。
正在处理的作业大约需要 7-10 分钟,但我注意到我的一些作业会重新启动,即使它们仍在忙于运行。
密切关注 phpBeanstalkdAdmin,当 queue:listen 接手工作时,我可以看到工作被 埋掉,但过了一会儿它又被踢回,到 ready.
要开始监听队列,我正在使用:
$ ./artisan queue:listen --queue=my_queue --memory=512 --timeout=600
在队列处理程序的 fire() 方法中,我只是用
开始了一个工匠命令 Artisan::call(
'tms:parse',
[
'--alias' => $data['alias'],
'--notify' => $data['email']
]
);
打电话
if ($job != null) {
$job->delete();
}
一旦工作完成。但我不明白为什么它会在工作繁忙的中途被踢到准备好。
在预配置的时间间隔内没有任何事情发生后,Laravel 是否会将作业踢回就绪状态?
【问题讨论】:
-
有一个比 phpBeanstalkdAdmin 更好的工具,它是 Beanstalkd 控制台:github.com/ptrofimov/beanstalk_console
标签: laravel queue beanstalkd