【发布时间】:2019-01-23 19:52:40
【问题描述】:
我正在尝试设置一个表以便在 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 工作队列的新手,所以我不确定我错过了什么。如何创建迁移以利用数据库队列驱动程序?
更新:
我最终只是在 postgres db 中创建了一个作业表,我按照Lumen documentation 中描述的结构使用我的其余数据并使用它来存储作业,但仍然很好奇为什么queue:table 函数不可用.
Laravel 框架版本 Lumen (5.3.3)(Laravel Components 5.3.*)
【问题讨论】:
-
而不是自己做。您可以为此目的使用 laravel 的 Horizon(laravel.com/docs/5.6/horizon)。但是,如果您学习如何手动使用它们会很好。如果可以,请更新 laravek 版本。 5.3 现在太旧了
-
@TimLewis 我有,只是使用了错误的链接,已更新。
-
没问题;就在我第一次读到你的问题时,它作为一个危险信号向我跳了出来;错误的版本等。我可以看到它不是,所以可能与 Lumen vs Laravel 有关?
-
@TimLewis 无论哪种方式都很好。啊,你对 Lumen 的看法可能是对的。
-
只是猜测。恐怕我从未使用过 Lumen,但如果该功能可用,您应该能够在自己的自定义命令中模仿该过程;只需查看
queue:table命令的作用并复制到您自己的。
标签: php laravel laravel-5 lumen laravel-artisan