# Resque tasks require 'resque/tasks' require 'resque/scheduler/tasks' require 'resque' require 'resque-scheduler' task :scheduler => :environment do # If you want to be able to dynamically change the schedule, # uncomment this line. A dynamic schedule can be updated via the # Resque::Scheduler.set_schedule (and remove_schedule) methods. # When dynamic is set to true, the scheduler process looks for # schedule changes and applies them on the fly. # Note: This feature is only available in >=2.0.0. #Resque::Scheduler.dynamic = true # The schedule doesn't need to be stored in a YAML, it just needs to # be a hash. YAML is usually the easiest. config = YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/scheduler.yml')) if File.exist? File.join(File.dirname(__FILE__), '../..', 'config/scheduler_override.yml') puts "scheduler_override file found. loading..." override = YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/scheduler_override.yml')) if override # override will be false if file is empty config.merge!(override) else puts "schedule_override is empty... skipping..." end end Resque.schedule = config # If your schedule already has +queue+ set for each job, you don't # need to require your jobs. This can be an advantage since it's # less code that resque-scheduler needs to know about. But in a small # project, it's usually easier to just include you job classes here. # So, something like this: #require 'jobs' Rake::Task['resque:scheduler'].invoke end