【问题标题】:How to execute laravel job (queue)?如何执行 laravel 作业(队列)?
【发布时间】:2016-09-01 06:21:11
【问题描述】:

开发人员,我有一个问题。我的队列不工作,或者我只是不明白它是如何工作的。我创建了一个应该添加新队列作业的命令。队列的驱动程序是 - 数据库。执行我的命令后,我在表 'jobs' 中看到了一个新行。之后我尝试做“php artisan queue:work”——但没有任何反应。

请帮帮我,我该如何执行这项工作?

【问题讨论】:

  • 您检查过您的日志是否有任何可能的错误吗?
  • 我也尝试执行 queue:listen - 没有结果。

标签: php laravel laravel-5


【解决方案1】:

From the documentation : [Daemon Queue Listener] queue:work artisan 命令包含一个 --daemon 选项,用于强制队列工作者继续处理作业而无需重新启动框架。与 queue:listen 命令相比,这会显着降低 CPU 使用率:

要以守护程序模式启动队列工作者,请使用 --daemon 标志:

php artisan queue:work connection --daemon

但是,如果您没有多个连接,请删除连接并在没有连接的情况下执行它:

php artisan queue:work --daemon

它对我有用。

【讨论】:

    【解决方案2】:

    是的,有时您的队列作业无法运行。对于部署,如果您使用的是 redis 队列驱动程序,如果没有,您可以按照此here 安装和配置 redis,之后您应该使用为失败的作业创建一个表 php artisan queue:failed-table php artisan migrate 然后使用 php artisan queue:work redis --tries=3 --backoff=3 在失败 3 秒后重试每个失败的作业 3 次。

    【讨论】:

      【解决方案3】:

      试试

      php artisan queue:listen

      改为。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-15
        • 2019-11-28
        • 2016-12-30
        • 1970-01-01
        • 2017-01-14
        • 1970-01-01
        • 2017-12-02
        相关资源
        最近更新 更多