В моем config/horizon
теперь у меня есть:
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['arbitrage'],
'balance' => 'auto',
'processes' => 2,
'tries' => 1,
],
'supervisor-2' => [
'connection' => 'redis',
'queue' => ['trade'],
'balance' => 'auto',
'processes' => 4,
'tries' => 1,
],
'supervisor-3' => [
'connection' => 'redis',
'queue' => ['balance', 'trade_meta'],
'balance' => 'auto',
'processes' => 5,
'tries' => 1,
],
'supervisor-4' => [
'connection' => 'redis',
'queue' => ['notifications'],
'balance' => 'auto',
'processes' => 2,
'tries' => 1,
],
],
Я сделал это, потому что я хочу убедиться, что каждая из этих очередей получает своих назначенных рабочих, что разные очереди работают параллельно и что они не влияют друг на друга, даже если, например, очередь notifications
имеет десятки заданий, а очередь trade
пуста.
Мой вопрос заключается в том, имеет ли это смысл, когда именно я должен использовать несколько супервизоров? Или: чем мой вышеупомянутый конфиг отличается от выполнения:
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['arbitrage', 'trade', 'balance', 'trade_meta', 'notifications'],
'balance' => 'auto',
'processes' => 10,
'tries' => 1,
],
Будет ли это иметь значение, если в этих очередях одновременно будет более 10 заданий, учитывая, что я указал 10 работников?
В очереди может одновременно находиться от 10 до 30 заданий, и это может увеличиться в будущем. Вот почему я строю свою конфигурацию таким образом, но я не уверен, что именно означает определение нескольких супервизоров.