我接管了 Laravel 5.2 项目,其中使用handle()
队列驱动程序成功调用了sync
。
我需要一个支持dispatch(..)->delay(..)
的驱动程序,并尝试配置database
和beanstalkd
,但有许多变体,但未成功 - 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表中没有任何内容。
- 真的,非常感谢此时的任何帮助!