【问题标题】:Laravel + Beanstalkd - job is processed but not fired?Laravel + Beanstalkd - 工作已处理但未解雇?
【发布时间】:2015-02-17 02:26:31
【问题描述】:

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

【问题讨论】:

  • 检查 laravel 日志 - 有没有错误?
  • 你得到答案了吗?
  • 是的,看答案:)

标签: laravel queue beanstalkd


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2015-01-06
    • 2014-04-09
    • 2011-12-24
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    相关资源
    最近更新 更多