Вопрос

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

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

Однако мне это не очень нравится. Если по какой-либо причине задача не выполнена полностью, мы не создадим следующую и можем потерять выполнение задачи.

Как вы управляете такими вещами (с отложенной работой) в своих приложениях rails, чтобы убедиться, что ваш список обычных задач остается верным?

Это было полезно?

Решение

Если у вас есть доступ к Cron, я настоятельно рекомендую всякий раз, когда

http://github.com/javan/whenever

Вы указываете, что вы хотите запускать и с какой частотой, в обычном простом ruby, и всякий раз, когда поставляет задачи rake, чтобы преобразовать это в crontab и обновить crontab вашей системы.

Если у вас нет доступа к частым cron (как у меня нет, так как мы на Heroku), тогда DJ - это путь.

У вас есть несколько вариантов.

<Ол>
  • Делай то, что делаешь. Ди-джей будет повторять каждое задание определенное количество раз, так что вы немного снисходительны

  • Поместите код, который создает следующее задание DJ, в блок обеспечения, чтобы убедиться, что он создается даже после исключения или другого плохого события

  • Создайте другого диджея, который периодически запускается, проверяет наличие соответствующих диджеев и создает их, если их нет. Конечно, это так же подвержено ошибкам, как и другие варианты, так как монитор и реальный ди-джей работают в одном и том же env, но это что-то.

  • Другие советы

    Есть ли какая-то конкретная причина, по которой вы бы не использовали cron для такого рода вещей? Или, может быть, что-то более рубиновое, например, rufus-scheduler , что довольно простой в использовании и очень надежный.

    Если вам не нужно ставить в очередь, я думаю, эти инструменты помогут вам.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top