【发布时间】:2018-08-02 07:06:13
【问题描述】:
我需要你的帮助。
我正在使用 Laravel 队列和 Linux 主管工具(与文档完全一样)
现在我有一个非常奇怪的问题。
当我毫不拖延地使用这个命令时
$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data));
一切正常。
但是当我使用延迟选项时
$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data))->delay(60);
作业失败,不再继续
我可以在失败的作业表上看到作业。
现在...当我不使用主管工具并在终端中运行命令时:
php artisan queue:listen
带有延迟选项的命令和其他队列任务工作正常。
这是我的 larave-worker 内容的样子:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/Poptin/artisan queue:work database --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=ubuntu
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/<project>/worker.log
您认为我需要做什么才能修复它?
另外...我如何为不同的工作使用不同的队列?像这样
$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data))->onQueue('autoresponder')->delay(60);
?
目前,我只有默认队列。我在 config/queue.php 文件中声明其他队列的位置在哪里?
'connections' => [
'sync' => [
'driver' => 'sync',
],
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
],
【问题讨论】:
-
在您运行作业时检查您的日志
-
您能检查一下您的
failed_jobs表吗?异常列记录了什么? -
我们的 failed_jobs 表中没有异常列
-
对碳使用延迟 ..
-
已经试过了 - 不工作。 @Demonyowh
标签: php linux laravel laravel-5 queue