Laravel + Beanstalkd - 工作已处理但未解雇?

时间:2014-12-18 10:19:35

标签: laravel queue beanstalkd

我使用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方法中执行我的任何代码......这里发生了什么?

1 个答案:

答案 0 :(得分:0)

所以我的问题是我的服务器上有两个项目,它们位于不同的文件夹中(比如说Project1Folder和Project2Folder)。 两者都有同名的工作 - “MyJob”。所以我设置了队列:在Project1Folder中监听,但运行Project2Folder作业。在这种情况下,queue:listen不应该检测并处理任何作业,因为它在不同的文件夹中侦听。但由于某种原因,侦听器检测到具有相同名称的作业,尽管它在不同的文件夹中。这会使侦听器感到困惑,并且会处理作业,但没有结果。 所以我做的是设置队列:监听Project2Folder - 这是我想要检测作业的项目文件夹。