我使用Beanstalkd管理Laravel项目中的队列。我的工作是这样的:
class MyJob {
public function fire($job, $data) {
Log::info("Something");
.....
.....
.....
$job->delete();
}
}
我设置beanstalktd来监听这样的工作:
php artisan queue:listen
所以当我在队列中推送工作时:
Queue::push('MyJob', array(
.....
);
处理作业:
Processed: MyJob
但是不要在fire方法中执行我的任何代码......这里发生了什么?
答案 0 :(得分:0)
所以我的问题是我的服务器上有两个项目,它们位于不同的文件夹中(比如说Project1Folder和Project2Folder)。 两者都有同名的工作 - “MyJob”。所以我设置了队列:在Project1Folder中监听,但运行Project2Folder作业。在这种情况下,queue:listen不应该检测并处理任何作业,因为它在不同的文件夹中侦听。但由于某种原因,侦听器检测到具有相同名称的作业,尽管它在不同的文件夹中。这会使侦听器感到困惑,并且会处理作业,但没有结果。 所以我做的是设置队列:监听Project2Folder - 这是我想要检测作业的项目文件夹。