Laravel Horizon ограничивает количество общих процессов - PullRequest
1 голос
/ 16 мая 2019

Прочитав довольно много постов ( Как этот от Захарии Кэмпбелл ) о Laravel Horizon с очередью Redis и пытаясь настроить и настроить его, я не смог выяснить, возможно ли максимизировать общее количествоколичество процессов, запускаемых laravel horizon.

Использование стратегии "simple" и наличие одного процесса на очередь (что я и хочу) может вызвать проблемы с процессором или внутренней памятью при наличии 1000 очередей, что приведет к 1000 процессамбежать?(Каждая очередь получает свой собственный процесс по умолчанию)

Есть ли способ максимизировать общее количество процессов, порожденных горизонтом, независимо от количества очередей?Итак, 10 обработок в 20 очередях, и когда одна очередь пуста или даже лучше, было обработано одно задание из одной очереди, рабочий выберет другую очередь?

Моя текущая конфигурация

horizon.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 и горизонт 3.0

в настоящее время я использую beanstalkd, но хочу перейти на очередь redis с горизонтом из-за отсутствия поддержкиbeanstalkd и некоторые неприятные ошибки.

ОБНОВЛЕНИЕ 2019-05-17:

Я попробовал config maxProcesses:

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

Но даже тогда создаются три процесса, один длякаждая очередь.enter image description here

...