我试图建立一个表以便异步执行Laravel中的作业。我已经编写了作业类并可以分派它。但是它正在同步调度。
在documentation之后,当我尝试使用php artisan queue:table
创建迁移时,出现以下错误:
[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "queue:table" is not defined.
Did you mean one of these?
queue:failed
queue:work
queue:restart
queue:listen
queue:retry
queue:forget
queue:flush
我注意到我最初在config目录中没有queue.php文件,所以我从repository中添加了一个,并将'default' => env('QUEUE_DRIVER', 'sync')
更改为'default' => env('QUEUE_DRIVER', 'database'),
;
我还在.env文件中将QUEUE_DRIVER=sync
更改为QUEUE_DRIVER=database
。
我是Laravel的工作队列新手,所以我不确定自己缺少什么。如何创建迁移以利用数据库队列驱动程序?
更新:
我只是按照Lumen documentation中描述的结构在剩余的数据中使用的postgres db中创建了一个作业表,并使用它来存储作业,但仍然好奇为什么queue:table
函数不可用。
Laravel框架版本Lumen(5.3.3)(Laravel组件5.3。*)
答案 0 :(得分:0)
php artisan queue:table
此命令正确,但是在.env文件中设置了QUEUE_DRIVER = database 并检查作业
class TempleteEmailJob implements ShouldQueue
创建迁移所需的实现ShouldQueue
然后php artisan迁移