У меня есть модуль rails, который обрабатывает некоторые активные объекты записи, только около 15-20 за раз, которые мне нужно запускать каждые две минуты.
Я попытался разгрузить его в sidekiq (иsidekiq-cron), который работает, но с параллелизмом, создал много условий гонки и дублирующих данных.
Мне просто нужен простой cron задачи рейка для рельсов или, возможно, sinatra (как я создал бы новое приложение sinatraпросто для выполнения этих задач)
- Мне нужно либо принудительно заставить sidekiq обрабатывать в одном потоке, либо
иметь задачу "cron", запустить задачу rake или дажемодуль напрямую
def self.process_events
events = StripeEvent.where(processed: false)
events = StripeServices.arrange_processing_order events
events.each do |event_obj|
StripeServices.new(event_obj).process_event_obj
end
end
спасибо за любую точку в правильном направлении.
извините, я не очень ясно,перемещение моего модуля в sidekiq вызвало проблемы с параллелизмом, к которым я не был готов (мой код не является потокобезопасным), и с учетом ограничений, которые Heroku накладывает на "crons", каков наилучший способ запускать грабли каждые 2 минуты?
Если Синатра может это сделать, я бы предпочел, но я не могу найти решение той же проблемы.