具有数据库驱动程序的流明队列作业不会填充表作业

时间:2017-08-11 00:36:51

标签: 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页面生成迁移,以创建作业 failed_jobs 表格。

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

问题:

  1. 在运行命令php artisan queue:work之前我尝试将作业发送到队列,Queue::push(new SendEmailJob) 它立即运行,我没有运行命令{{1}尚未。 我检查数据库,表作业是空的。
  2. 我运行命令php artisan queue:work向特定端点发出请求,使用此行php artisan queue:workQueue::push(new SendEmailJob)之一将作业放入队列 我没有错误,但作业队列仍为空
  3. 我做错了什么?

    为什么在运行命令dispatch(new SendEmailJob())之前队列处理所有作业?

    提前致谢

1 个答案:

答案 0 :(得分:0)

  1. 你可以派遣一份工作并在执行前要求延迟:
  2.   

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

    1. 确保工作人员没有运行:
    2.   

      ps aux | grep queue

      如果是这样,请杀死它。虽然最佳做法是在任何代码更改后重新启动worker:

        

      php artisan queue:restart