Прочитав довольно много постов ( Как этот от Захарии Кэмпбелл ) о 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,
],
],
Но даже тогда создаются три процесса, один длякаждая очередь.