2013-05-07 6 views
0

У меня есть приложение Rails, которое в основном сканирует много RSS-каналов. Каждый канал имеет интервал обхода, например, 3 часа.Ruby on Rails - Задержка задания - Вернуться к заданию id

Проблема заключается в том, что каждый месяц (и все больше добавляется) все больше загружается (иногда добавляется больше), иногда 3 часа заканчиваются, прежде чем фид будет обходить отложенную работу. Это приводит к увеличению числа рабочих мест. Надеюсь, моя проблема ясна.

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

Что было бы лучшим способом сделать это?

ответ

0

Добавить логическую переменную, например «in_progress», в таблицу замедленной работы. всегда, когда начинается задание, установите для этого атрибута значение true. если задание завершено, обновите его до значения false. Только запускайте задания, если атрибут «in_progress» является ложным, иначе пропустите этот канал.

Смежные вопросы