diff --git a/app/schedulers/cron_scheduler.rb b/app/schedulers/cron_scheduler.rb deleted file mode 100644 index 97c8561..0000000 --- a/app/schedulers/cron_scheduler.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -class CronScheduler - def self.run - scheduler = Rufus::Scheduler.new - - # Daily at 4:30 AM - # scheduler.cron '30 4 * * *' do - scheduler.cron '18 * * * *' do - # AssembleMarcFiles.new.run - end - - scheduler.join - end -end diff --git a/config/initializers/scheduler.rb b/config/initializers/scheduler.rb new file mode 100644 index 0000000..31d98bf --- /dev/null +++ b/config/initializers/scheduler.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require 'rufus-scheduler' + +# Let's use the rufus-scheduler singleton +scheduler = Rufus::Scheduler.singleton + +# Do not schedule when Rails is run from its console, for a test/spec, or from a Rake task +return if defined?(Rails::Console) || Rails.env.test? || File.split($0).last == 'rake' + +Rails.logger.info "Schedule Task #{Time.now} ..." + +# Hourly - do something every hour +scheduler.every '1h' do + Rails.logger.info "Hourly #{Time.now}" + Rails.logger.flush +end + +# Daily - do something every day, five minutes after midnight +# (see "man 5 crontab" in your terminal) +scheduler.cron '5 0 * * *' do + Rails.logger.info "Daily #{Time.now}" + Rails.logger.flush +end + +Rails.logger.info "End Schedule Task #{Time.now}"