queue - 带有数据库驱动程序的 Lumen 队列作业不会填充表作业

标签 queue laravel-5.4 jobs lumen lumen-5.4

我是 laravel/lumen 的新手

我在几个小时前生成了一个新的流明项目,我正在尝试使用数据库驱动程序将作业发送到默认队列。

我的 .env 文件看起来像这样

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=root
DB_PASSWORD=xxxx

CACHE_DRIVER=file
QUEUE_DRIVER=database

关注官方Queues - Lumen我生成迁移以创建 jobsfailed_jobs 表。

config/queue.php 文件有默认配置

问题:

  1. 在运行命令 php artisan queue:work 之前,我尝试将作业发送到队列,Queue::push(new SendEmailJob) 但是 它立即运行,我还没有运行命令 php artisan queue:work。 我检查了数据库,表 job 是空的。
  2. 我运行命令 php artisan queue:work 向特定端点发出请求,使用此行之一将作业放入队列 Queue::push(new SendEmailJob)dispatch(new SendEmailJob()) 我没有收到任何错误,但作业队列仍然是空的

我做错了什么?

为什么在我运行命令 php artisan queue:work 之前队列处理所有作业?

提前致谢

最佳答案

  1. 您可以调度作业并在执行前请求延迟:

$this->dispatch((new ProcessJob($id))->delay(10)); // 10 ms

  1. 确保 worker 没有运行:

ps aux|grep queue

如果是,杀掉它。尽管最佳实践是在任何代码更改后重新启动 worker:

php artisan queue:restart

关于queue - 带有数据库驱动程序的 Lumen 队列作业不会填充表作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45625300/

相关文章:

php - 如何搭建一个带有倒计时功能的mysql排队系统?

php - 如何在 Laravel 中同步同一个属性的多个值?

amazon-web-services - 正确的 AWS::Glue::Job Connections 属性结构是什么?

sql-server - 尝试在 SQL Server 中创建或编辑作业步骤时出错 "The system cannot find the file specified."

java - hadoop 使用类名提交作业,为什么需要 job.setJarByClass()?

java - 如何计算队列中单词的字母数量?

java - 按元音数量对 ArrayList 中的字符串进行排序

php - Laravel 队列失败作业

php - Laravel 索引策略

php - 渴望在 Auth::user() 外观上加载嵌套关系