У меня есть 10000 пользователей. Из этого числа пользователей 1000 подходят под условие, которым нужно разослать уведомление на почту.
Скрипт должен запускаться 1 раз в сутки.
Как правильно создать этот скрипт, чтобы он не нагружал систему и БД?
Нужно отправлять уведомления так, чтобы меня не заблокировали за спам.
Изначально я отправляю запрос к БД, который определяет пользователей, которые подходят под условие. В итоге у меня есть адреса на которые нужно отправить письма.
На сколько правильно вытягивать сразу 1000 пользователей, а потом в цикле отправить им уведомления?
Мне кажется, что можно как-то постепенно их получать и с задержкой выполнять эти действия.
1. Если ты делаешь рассылку не через сервисы типа Mailchimp, Sparkpost etc, а с ящика а-ля voron1999@gmail.com, то тебя забанят с вероятностью 99% даже за 10 писем.
2. Некоторые упомянутые сервисы так же имею лимит типа «N писем в минуту» или «N адресов в копии».
3. Ограничение из п. 2 решается механизмом rate limiting (есть в ларавел с 6.х) или поиском сервиса с большими лимитами или повышением лимитов за деньги/через поддержку.
Вам в любом случае надо использовать специализированный сервис доставки писем. Ваше количество попадает только под бизнес аккаунты. Выбирайте необходимый тариф и шлите сразу 1000 писем, здесь проблем нет.