Должен ли я реализовать shouldQueue для каждого уведомления - PullRequest
0 голосов
/ 21 января 2020

У меня есть класс задания под названием NotifyUsers. В этом классе, конечно, реализован интерфейс shouldQueue, который является классом очереди по умолчанию, который Laravel дает мне. В методе handle у меня есть этот лог c.

Notification::send($this->users, new NotifyUser($this->message));

. В классе уведомлений NotifyUser я отправляю уведомление, выбрасывающее WebPushChannel. У меня вопрос о том, должен ли я реализовать mustQueue в классе NotifyUser или нет, и если я должен это сделать, почему? Кстати, все работает хорошо, оба работают хорошо, но я хотел бы знать правильный способ сделать это.

1 Ответ

1 голос
/ 21 января 2020

Это зависит от того, чего вы пытаетесь достичь. Если вы хотите запустить уведомление в фоновом режиме, тогда да. Использование очереди should создаст задание, которое обрабатывается в фоновом режиме, так что вам не нужно ждать, пока оно будет обработано.

Но если вы думаете, что ваше приложение может выйти из строя в какой-то момент, вы не сможете получить ошибку там и тогда. вам придется извлечь из таблицы неудачных заданий, если вы используете базу данных для очереди. Так что мой улов:

  1. Если вы считаете, что вашему уведомлению может потребоваться некоторое время, чтобы обработать использование, то оно должно работать в фоновом режиме, а ваше приложение отстает от
  2. Если вы считаете, вам нужно получить ошибки сразу, если уведомление не сработало, тогда не используйте shouldQueue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...