Laravel Queue驱动程序不在作业上调用handle(),但是队列:listen守护程序正在将作业记录为已处理

时间:2017-07-04 11:44:11

标签: php laravel server queue forge

我接管了 Laravel 5.2 项目,其中使用handle()队列驱动程序成功调用了sync

我需要一个支持dispatch(..)->delay(..)的驱动程序,并尝试配置databasebeanstalkd,但有许多变体,但未成功 - handle()不再被调用。< / p>

当前设置

我正在使用Forge进行服务器管理,并为此命令设置了一个守护程序,该守护程序由Supervisor自动运行:

  

php /home/forge/my.domain.com/envoyer/current/artisan queue:listen --sleep = 3 --tries = 3

     
    

我也尝试过排队:工作,命名&#39;数据库/ beanstalkd&#39;,有和没有指定--sleep,--tries, - deamon

  

我有an active beanstalkd worker running on forge

我已将beanstalkd中的默认驱动程序设置为\config\queue.php中的QUEUE_DRIVER=beanstalkd,并将我.env中的php artisan config:clear php artisan migrate php artisan cache:clear php artisan queue:restart 设置为来自Envoyer,这对其他环境变量都有效。

构建部署后,Envoyer成功运行以下命令:

queue:listen

调试信息

我的class GenerateRailwayReport extends Job implements ShouldQueue { use InteractsWithQueue, SerializesModels; protected $task_id; public function __construct($task_id) { $this->task_id = $task_id; clock("GenerateRailwayReport constructed"); // Logs Fine } public function handle() { clock("Handling Generation of railway report"); // Never Logs //Bunch of stuff all commented out during my testing } public function failed(Exception $e) { clock("Task failed with exception:"); // Never Logs clock($e); } } 守护程序在.forge 中生成日志,表示已处理作业!

  

[2017-07-04 08:59:13]已处理:App \ Jobs \ GenerateRailwayReport

该职位类的定义如下:

db.addresses.find({ 
    $and: [ {"date": {$gte: "2017-06-01"}}, 
        {"date": {$lt: "2017-06-60"}}, 
        { $or: [{"address.postal_code" : { $regex: /^SW1 /i } }, 
            {"address.postal_code" : { $regex: /^SW2 /i } }, 
            {"address.postal_code" : { $regex: /^SW3 /i } }, 
            {"address.postal_code" : { $regex: /^SW4 /i } } 
        ]}
    ]})

我在.forge中的beanstalkd worker登录中有无输出

我的failed_jobs表中没有任何内容。

- 真的,非常感谢此时的任何帮助!

0 个答案:

没有答案