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

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

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

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

服务器使用supervisord 来守护的。

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前

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