Повторная регистрация клиентов с использованием Cron?

#recurring #subscriptions

#повторяющиеся #Подписки

Вопрос:

Нам нужно перебронировать x количество клиентов в любой день.

В настоящее время мы запускаем cron каждые 5 минут, чтобы выставить счет 20 людям / отправить счет и т. Д

Однако, когда число клиентов растет, расширение до 100 человек за 5 минут может привести к перекрытию cron и двойному выставлению счетов клиентам.

У меня есть две мысли:

Запуск cron один раз, но перевод его в режим ожидания x после выставления счета / счета 20, чтобы мы не спамили API.

Использование очереди сообщений, в которой люди добавляются в очередь, а затем «рабочие» обрабатывают очередь. Проблема в том, что у меня нет опыта в этом, поэтому я не уверен, какой маршрут лучше выбрать.

Есть ли у кого-нибудь опыт в этом?

Комментарии:

1. Второй вариант, вероятно, то, что вы хотите. Даже если вы спите, есть шанс, что вы не будете делать это достаточно долго. Почему бы вам не отправлять электронные письма за весь день сразу?

2. Когда дело доходит до выставления счетов более чем 10 000 клиентам в день, наличие скрипта, который зацикливается, безусловно, слишком интенсивно, и с ограничениями запросов API и т. Д., Может стать беспорядочным? Идея выполняется один раз в день, но запросы распределяются

3. Хотя выполнение cron при 100 запросах в минуту составляет всего 144 000 — неизбежно будут сбои, но мысль о запуске нескольких рабочих в очереди, где каждый выполняет 100 запросов в минуту, может неплохо масштабироваться? Просто не уверен, какое лучшее решение

4. Я бы согласился создать работника, пометить каждого клиента как помещенного в очередь и отправить электронное письмо. если процесс отправки электронной почты завершается неудачно, отметьте его как незавершенный и вернитесь к нему позже. У вас более 10 000 клиентов каждый день? Похоже, вам нужна выделенная машина для обработки отправки только электронных писем вашему клиенту и просто непрерывной отправки электронной почты за электронной почтой, как стек.

5. Проблема в том, что клиенты, которым мы выставляем счета, являются клиентами нашего пользователя, а не нашими.. Итак, если у каждого из 100 пользователей по 100 повторных подписк в день, то он будет довольно быстро масштабироваться до такой степени, что запуск 1 cron в день может не превысить требуемую сумму. В то время как, если очередь не обрабатывается, мы можем просто добавить больше работников. Однако моего опыта работы с очередями заданий не существует. Мы используем SendGrid для отправки электронных писем.. мы просто отправляем запрос API. Спасибо за ваш вклад 🙂