Как сделать рассылку с ограничением количества писем на Laravel?

Пытаюсь сделать рассылку о новых объявлениях.
- 1000 адресов
- smtp ограничение 30 писем / минуту.

В ларавел есть очереди (queue) - их основная цель возможность повторного выполнения если что-то пошло не так. Сразу лучше не грузить все 1000 задач в очередь на отправку писем из-за ограничений.

1) Есть конечно всякие sleep, delay(now()->addMinutes(10)), Mail::later($when, new OrderShipped($order)) и другие способы - но они все во время простоя нагружают PHP?

2) Можно сразу загрузить все 1000 писем в очередь, но большая часть из них не отправится и придётся их потом переотправлять.

3) Поэтому наиболее оптимально будет написать код таким образом, чтобы добавлять в очередь 20-30 писем в минуту за счёт задачи по крону. Ну а затем очередь рассылается.

Скажите, я правильно разобрался или вот это дробление на мелкие пакеты для отправки не нужно и можно как-то регулировать количество выполняемых задач(отсылаемых писем) с помощью каких-то настроек?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
1) Есть конечно всякие sleep, delay(now()->addMinutes(10)), Mail::later($when, new OrderShipped($order)) и другие способы - но они все во время простоя нагружают PHP?
Нет, не нагружают.

Вы разобрались неправильно. Рекомендую перечитать документацию очередей вдумчиво. Самый труЪ-путь — Rate Limiting.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы