我使用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页面生成迁移,以创建作业和 failed_jobs 表格。
config / queue.php 文件具有默认配置
问题:
php artisan queue:work
之前我尝试将作业发送到队列,Queue::push(new SendEmailJob)
但它立即运行,我没有运行命令{{1}尚未。
我检查数据库,表作业是空的。php artisan queue:work
向特定端点发出请求,使用此行php artisan queue:work
或Queue::push(new SendEmailJob)
之一将作业放入队列
我没有错误,但作业队列仍为空我做错了什么?
为什么在运行命令dispatch(new SendEmailJob())
之前队列处理所有作业?
提前致谢
答案 0 :(得分:0)
$ this-> dispatch((new ProcessJob($ id)) - > delay(10)); // 10毫秒
ps aux | grep queue
如果是这样,请杀死它。虽然最佳做法是在任何代码更改后重新启动worker:
php artisan queue:restart