У меня есть веб-сайт с тестовой и производственной средой. Оба используют 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
... Я обнаружил, что происходит следующее :
- По TST я отправляю письмо пользователю с ID 30, например
- Почта отправляется пользователю по электронной почте с TST-user-id 30.
- Содержимое письма, это Пользователь с ID 30 из PRD-соединения ....
Как это происходит? Сообщение отправляется в очередь TST, но задание обрабатывает его так же, как и в очереди PRD, потому что используется информация из базы данных PRD ..
Похоже на проблему конфигурации? Могу ли я принудительно использовать очередь, которую следует использовать в Mailable?