И такое бывает

047604a34284891776a74d5013683695_XLОдин заказчик сайтов любил слать емейлы пользователям сайта. Ну такой продвинутый маркетинг.

Тут тебе и разные напоминания пользователям, о том что давно не входили в систему, или о том, что ещё не заполнено какое-то поле в профиле. Или ещё что-нибудь. Таких видов напоминаний было около 10. Бизнес-логика у сайта была нетривильная, потому и с напоминаниями можно было развернуться.

Уже представили себе картину? Продолжаю.


У каждого из этих напоминаний была своя логика. Ну например, первое напоминание должно быть послано скажем через неделю после наступления события, а все последующие с интервалом 30 дней.

Обработка всего этого великолепия была в планировщике, который шерстил клиентов и примерял к ним все эти 10 напоминаний, и решал не пора ли послать ещё одно напоминание.

Но самое интересное — запускалось всё это великолепие каждые 2 минуты(!!!). Да да!!! Каждые две минуты планировщик проверял, а не пора ли посылать напоминание пользователю о том, что он не логинился 7 дней?

Избыточная частота, согласен, но ведь работало!

Работало до тех пор, пока сложность проверок не зашкалила, а код стал превращаться в спагетти. В общем однажды напоминания стали слаться при каждом вызове проверки. То есть каждые 2 минуты.

Результат:

  1. Нервы
  2. Злые клиенты
  3. Заява в полицию по поводу рассылки спама

Уроки на будущее
===========
Надо быть скромнее. Не надо слишком навязчиво напоминать о себе клиенту. Лояльности посетителям это не прибавит. Не хочет — значит ему оно не надо!

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

Как-то так