horizon 中的任务一直处于pending中,不成功也不失败,想问问是什么原因

horizon 中的任务一直处于pending中,不成功也不失败,想问问是什么原因

horizon 中的任务一直处于pending中,不成功也不失败,想问问是什么原因

如果所示,horizon 中的任务一直处于pending中,不成功也不失败,想问问是什么原因。

服务器使用supervisord 来守护的。

配置方面基本都是默认的配置。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

我猜你用的默认配置,没怎么变动是吧

之前也碰到过这个问题,本地没问题,上线了就是pending不处理

看你的面板,horizon已经是active启动执行状态了,现在的问题是你的worker没有执行,你要检查你的环境是否是production或者local,如果你是dev 那你要在 config.phpenvironments里也配置一个对应的key才行,这样horizon才会为对应环境拉起来对应worker

'defaults' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default'],
            'balance' => 'auto',
            'autoScalingStrategy' => 'time',
            'maxProcesses' => 5,
            'maxTime' => 600,
            'maxJobs' => 100,
            'memory' => 128,
            'tries' => 1,
            'timeout' => 600,
            'nice' => 0,
        ],
    ],

    'environments' => [
        'production' => [
            'supervisor-1' => [
                'maxProcesses' => 5,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3,
            ],
        ],
        'dev' => [
            'supervisor-1' => [
                'maxProcesses'    => 5,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3,
            ],
        ],

        'local' => [
            'supervisor-1' => [
                'maxProcesses' => 3,
            ],
        ],
    ],
1年前 评论
chenggx (楼主) 1年前
讨论数量: 12

那個status 不是顯示了嗎 你隊列被暫停了

1年前 评论

但是一直在暂停中,这个任务是我写的一个测试任务,里面就写了个日志

1年前 评论

使用 php artisan queue:work 就可以正常执行

1年前 评论

你看horzion的文檔 有暫時和繼續的命令

1年前 评论

php artisan queue:work 用這個命令可以 是因為這個啟動的進程沒有被暫停 所以能被消費 暫停只是暫停horzion的work進程 是往這個裡面丟了一個信號 你終止一下horzion 再運行就可以了

1年前 评论

第二张图信息不全啊,要么是没起来,要么是没有监听指定队列。比如你那几个任务是 default 和 crontab 这两个队列!

file

1年前 评论
GeorgeKing (作者) 1年前
JerryBool 1年前

我猜你用的默认配置,没怎么变动是吧

之前也碰到过这个问题,本地没问题,上线了就是pending不处理

看你的面板,horizon已经是active启动执行状态了,现在的问题是你的worker没有执行,你要检查你的环境是否是production或者local,如果你是dev 那你要在 config.phpenvironments里也配置一个对应的key才行,这样horizon才会为对应环境拉起来对应worker

'defaults' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default'],
            'balance' => 'auto',
            'autoScalingStrategy' => 'time',
            'maxProcesses' => 5,
            'maxTime' => 600,
            'maxJobs' => 100,
            'memory' => 128,
            'tries' => 1,
            'timeout' => 600,
            'nice' => 0,
        ],
    ],

    'environments' => [
        'production' => [
            'supervisor-1' => [
                'maxProcesses' => 5,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3,
            ],
        ],
        'dev' => [
            'supervisor-1' => [
                'maxProcesses'    => 5,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3,
            ],
        ],

        'local' => [
            'supervisor-1' => [
                'maxProcesses' => 3,
            ],
        ],
    ],
1年前 评论
chenggx (楼主) 1年前

file

下次你就看這裡有沒有進程列表展示出來沒 我沒有看這個圖 這個就是上面說的app_env 的值在horzion配置裡面找不到對應的 或者你指定的--environment=不是對應的值
為啥你的那個列表會有每條的狀態 看起來就像被暫停了一樣 你這個看起來不是最新版吧 我的好像沒有這個狀態

1年前 评论
chenggx (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!