【问题标题】:Generate migration that creates table for Laravel jobs queue?生成为 Laravel 作业队列创建表的迁移?
【发布时间】: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 的 Horizo​​n(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


【解决方案1】:
php artisan queue:table 

这个命令是对的,但是在 .env 文件中设置了 QUEUE_DRIVER=database 并在工作中检查

class TempleteEmailJob implements ShouldQueue

创建迁移需要实现 ShouldQueue

然后 php artisan 迁移

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-19
    • 2013-09-26
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2015-03-28
    • 2023-01-06
    相关资源
    最近更新 更多