php - Laravel 5.2 队列 - 延迟不起作用
问题描述
我需要你的帮助。
我正在使用 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,
],
解决方案
派遣你的工作
$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data))->delay(60);
$this->dispatch($job);
推荐阅读
- javascript - Electron 应用程序身份验证在 dev 中有效,但在与 electron-builder 打包后无效
- c - 如何在 C 中发送没有 RFH 标头的 MQ 消息?
- r - 为列表中的所有点赋值
- ios - 使用 Ionic 4 的 iOS Firebase 云消息推送通知不起作用
- sql - 还有其他方法可以将计算信息添加到表中吗?
- android - 使用不同高度的子级为 TextSwitcher、ViewFlipper 或 ViewSwitcher 设置动画
- java - 使用 PDFBox 验证 pdf 文件中 PDSignature 的字节范围
- excel - Excel Sumifs 替代“<>”的标准:当标准范围具有不能输出任何内容的公式时,如何检查非空白?
- c# - 如何使用 c# 在 aws lambda 中流式传输文件
- python - 如何使此 API 与有效负载一起使用?