2015-10-07 1 views
3

Могу ли я безопасно использовать Mail::send() внутри цикла с 1000 повторениями?Laravel Mail :: отправить() внутри петли

Я имею в виду, что существует проблема с использованием php mail() внутри такого цикла, потому что говорят, что он открывает SMTP-сокет для каждого вызова, но как насчет laravel Mail::send()?

обновление: сам цикл находится в задаче очереди.

+0

Используйте 'Mail :: later' очереди их все. –

+0

@JosephSilber Сам цикл находится в задаче очереди – MTVS

+1

Не имеет значения. Вы все еще не хотите делать все это одним выстрелом. –

ответ

0

Вместо того, чтобы саму работу в очереди на своих собственных с петлей (что может вызвать эту работу на тайм-аут в зависимости от конфигурации вашей очереди):

Очередь на каждой электронной почты один за одним, используя Mail::queue , Таким образом, например, у вас будет 100 писем в очереди, каждый из которых будет работать один за другим, пока очередь не будет пуста.

Его также хорошая идея иметь способ управления/протоколирования отказавших заданий очереди, так что вы можете увидеть, какие из них не удалось: http://laravel.com/docs/5.1/queues#dealing-with-failed-jobs