Как узнать, когда начнутся события, созданные пользователем в календаре [Rails] - PullRequest
0 голосов
/ 05 июля 2010

Я создаю онлайн-календарь в Ruby on Rails, который должен отправлять уведомления по электронной почте всякий раз, когда пользовательское событие собирается начинать / заканчивать (т.е. вы получаете напоминание, когда встреча проходит через 5 минут).Каков наилучший способ выяснить, когда событие должно начаться?Будет ли задача cron, которая проверяет все события, чтобы выяснить, какие из них запускаются в пределах определенного порога (например, 5 минут)?Задача cron кажется мне неэффективной, поэтому мне интересно, что может быть лучшим решением.Мои события хранятся в базе данных MySQL.Для этого должен быть шаблон дизайна ... Я просто в растерянности, что искать.

Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

1 голос
/ 05 июля 2010

По всей вероятности, вы, вероятно, реализуете некоторый механизм фоновой очереди для фактической доставки уведомлений - по крайней мере, вы наверняка должны рассмотреть этот подход.

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

Однако для принятия такого подхода необходимо учитывать следующее (как минимум):

  • Удаление задания уведомления в очереди при удалении связанного события
  • Изменение задания уведомления при изменении соответствующего события (скажем, нового времени)
  • Обеспечение разрешения опроса системы массового обслуживанияне позволяет отправлять уведомления так поздно, что они становятся бесполезными.

Если вы не выбрали решение для очередей для своего приложения, вам следует рассмотреть эти опции

...