Laravel Конфликт очереди Redis в L7 с настроенным Horizon - PullRequest
0 голосов
/ 06 мая 2020

У меня есть веб-сайт с тестовой и производственной средой. Оба используют Redis в качестве очереди.

Добавлен в Forge Daemon для Horizon для производственной среды (потому что я смотрю только свои очереди из этого домена).

Для обоих доменов я добавил queue -worker в соединении Redis и имена очереди: tst и prd (для тестирования и производства).

Это моя конфигурация в horizon.php для сред:

'production' => [
    'supervisor-1' => [
        'connection' => 'redis',
        'queue' => ['prd', 'tst'],
        'balance' => 'auto',
        'processes' => 50,
        'tries' => 2,
    ],
],

Очереди запускаются в правильной очереди, но когда я запускаю, например, следующее:

Mail::to($user->email)->queue(new LoginMail($user));

это не удается.

Происходит следующее: Электронное письмо отправлено на правильный $user, но содержание письма отличается $user ... Я обнаружил, что происходит следующее :

  1. По TST я отправляю письмо пользователю с ID 30, например
  2. Почта отправляется пользователю по электронной почте с TST-user-id 30.
  3. Содержимое письма, это Пользователь с ID 30 из PRD-соединения ....

Как это происходит? Сообщение отправляется в очередь TST, но задание обрабатывает его так же, как и в очереди PRD, потому что используется информация из базы данных PRD ..

Похоже на проблему конфигурации? Могу ли я принудительно использовать очередь, которую следует использовать в Mailable?

...