Реализация уведомления по времени на ruby on rails?
Задача очень простая. Сделать отложенные уведомления.
Я начал использовать delayed_job. Но появилась проблема. Со временем на сайте появилось очень много уведомлений и получается ситуация, когда на одно и то же время очень много задач. И отложенная задача, которая должны запустится в 14:00, запускается в 14:10, а то и в ч 14:30. От части, это потому что, время от времени запуска.тся очень массивные задачи по обновлению контента базы и они могут совместно работать до получаса, тем самым, тормозив работу уведомлений. Но в любом случае, со временем проект разрастется и даже кол-во уведомлений на одну точку будет очень много.
Вопрос №1: можно ли решить эту проблему и запускать задачи параллельно точно в нужное время?
Вопрос №2: решит ли эту проблему Resque или Sidekiq? Просто надо ли разбираться в чем-то новом вообще?
Вопрос №3: Может есть какая-то другая реализация уведомлений, более умная, чем просто отложенные задачи?
Используйте sidekiq. В этом случае очередь задач будет обрабатываться параллельно. Настройте кол-во воркеров сайдкик исходя из нагрузки(посмотрите в админке). А также создайте несколько очередей. Та очередь задач, которую нужно обрабатывать как можно скорее - поставьте ей максимальный приоритет.
Rescue - однопоточный. Он вам не подойдет.