Сам DelayedJob не поможет вам, поскольку он основан на разовых заданиях. Вам все еще понадобится что-то, что выполняется регулярно и создает эти задания.
Предполагая, что:
- Вы находитесь на Heroku и можете получить только 1-часовой крон
- вам нужно запускать работу каждые 15 минут
Вы можете сделать что-то вроде этого ...
Создайте класс для вашей работы:
class MechanizeJob < Struct.new(:url)
def perform
agent = Mechanize.new
agent.get(url)
end
end
Расписание заданий из вашего Rakefile:
task :schedulejobs => :environment do
urls = ["http://...", "http://...", "http://..."]
urls.each do |url|
# 1 is the job priority
Delayed::Job.enqueue MechanizeJob.new(url), 1, Time.now
Delayed::Job.enqueue MechanizeJob.new(url), 1, 15.minutes.from_now
Delayed::Job.enqueue MechanizeJob.new(url), 1, 30.minutes.from_now
Delayed::Job.enqueue MechanizeJob.new(url), 1, 45.minutes.from_now
end
end
Это будет запускать задание на URL каждые 15 минут.