首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个主管使用监督管理的多个Laravel地平线工人

每个主管使用监督管理的多个Laravel地平线工人
EN

Stack Overflow用户
提问于 2022-06-29 15:59:53
回答 1查看 553关注 0票数 0

我只是将我们的Laravel v8队列驱动程序从db转移到redis,使用。

无论我在config/horizon.php中配置了什么,我都只能在所有队列中得到一个工作进程,或者每个队列只有一个工作进程--但是没有自动平衡。

我修改了主管scheduler.conf以运行2个(或更多)进程:

代码语言:javascript
复制
[program:horizon]
process_name=%(program_name)s_%(process_num)02d
command=php /www/E3/artisan horizon
autostart=true
autorestart=true
user=web
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/supervisor/horizon.log
stopwaitsecs=3600

但这似乎催生了多个主管(用Horizon的话来说),每个主管只有一名员工,而不是每个主管有多名员工:

我认为Horizon配置正确:

代码语言:javascript
复制
    'defaults' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['high', 'updatestock', 'priceapi', 'pubsub', 'klaviyo', 'default', 'low'],
            'balance' => 'auto',
            'processes' => 2,
            'minProcesses' => 2,
            'maxProcesses' => 10,
            'maxTime' => 3600, // how long the process can run before restarting (to avoid memory leaks)
            'maxJobs' => 0,
            'balanceMaxShift' => 1,
            'balanceCooldown' => 3,
            'memory' => 128,
            'tries' => 3,
            'timeout' => 60,
            'nice' => 0,
        ],
    ],

    'environments' => [

        'staging' => [
            'supervisor-1' => [
                'maxProcesses' => 3,
            ],
        ],
    ],

另外,在尝试各种更改时,我不再获得挂起/已完成的任何数据-- json响应显示计数,但不显示作业数据,例如在/horizon/api/jobs/completed?starting_at=-1&limit=50中。

代码语言:javascript
复制
{
    "jobs": [],
    "total": 13157
}
EN

回答 1

Stack Overflow用户

发布于 2022-06-29 18:41:16

我认为在这种情况下,您不需要担心supervisor.conf。由于基于horizon.php - laravel将自动规模的“工人”数量。

尝试更改maxProcesses并测试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72804497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档