【问题标题】:Laravel Horizon limit the amount of total processesLaravel Horizo​​n 限制总进程数
【发布时间】:2019-10-04 00:49:36
【问题描述】:

在阅读了很多关于 Laravel Horizo​​n 和 Redis 队列的帖子 (Like this one from Zechariah Campbell) 并尝试对其进行配置和自定义之后,我无法确定是否可以最大化 laravel Horizo​​n 运行的进程总数。

使用策略“简单”并且每个队列有一个进程(这是我想要的)可能会在拥有 1000 个队列时导致 CPU 或内部内存问题,这将导致 1000 个进程运行? (每个Queue默认都有自己的进程)

有没有什么方法可以最大化 Horizo​​n 产生的进程总数,而不管队列的数量是多少?所以 10 个进程和 20 个队列,当一个队列是空的,或者更好的是处理了一个队列的一个作业时,worker 会选择另一个队列吗?

我目前的配置

horizo​​n.php

'local' => [
            'supervisor-1' => [
                'connection' => 'redis',
                'balance'    => 'simple',
                'processes'  => 1,
                'tries'      => 2,
            ],
        ],

queue.php

'redis' => [
            'driver'      => 'redis',
            'connection'  => 'queue',
            'queue'       => "1000,2000,3000",
            'retry_after' => 90,
            'block_for'   => null,
        ],

laravel 5.8 和 Horizo​​n 3.0

目前我使用 beanstalkd,但由于缺少 beanstalkd 的维护和一些讨厌的错误,我想迁移到带有 Horizo​​n 的 redis 队列。

2019 年 5 月 17 日更新:

我尝试了配置 maxProcesses:

'local' => [
            'supervisor-1' => [
                'connection' => 'redis',
                'balance'    => 'simple',
                'maxProcesses' => 1,
                'processes'  => 1,
                'tries'      => 2,
            ],
        ],

但即便如此,也会创建三个进程,每个队列一个。

【问题讨论】:

  • 有maxProcesses和minProcesses检查divinglaravel.com/introduction-to-how-laravel-horizon-workspost
  • 查看更新的答案,由于可读性而未发表评论
  • 我认为总体而言,您要寻找的是 balance=> "auto"
  • 不,我不希望两个或多个进程处理一个队列,这就是此自动平衡选项的作用。我刚刚尝试过,但这也创建了三个进程,每个队列一个。我想要 10 个进程来处理例如 100 个队列,而没有两个工作人员处理一个队列。
  • reddit.com/r/laravel/comments/43ya3c/… 我认为这可能会有所帮助

标签: php laravel redis queue laravel-horizon


【解决方案1】:

从 Horizo​​n 4(和以前的版本)开始,它始终会为每个队列分配至少 1 个工作器。没有办法解决它。 因此,如果您的 minProcess 为 1 但您有 3 个队列,那么您将至少有 3 个进程(工作人员)。我猜minProcess 设置更像是minProcessPerQueue 的东西。

【讨论】:

  • minProcess = 0
猜你喜欢
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 2020-09-27
  • 1970-01-01
相关资源
最近更新 更多