module SidekiqScheduler::Web

Hook into Sidekiq::Web app which adds a new ‘/recurring-jobs’ page

Constants

VIEW_PATH

Public Class Methods

registered(app) click to toggle source
# File lib/sidekiq-scheduler/web.rb, line 11
def self.registered(app)
  app.get '/recurring-jobs' do
    @presented_jobs = JobPresenter.build_collection(Sidekiq.schedule!)

    erb File.read(File.join(VIEW_PATH, 'recurring_jobs.erb'))
  end

  app.post '/recurring-jobs/:name/enqueue' do
    schedule = Sidekiq.get_schedule(params[:name])
    SidekiqScheduler::Scheduler.instance.enqueue_job(schedule)
    redirect "#{root_path}recurring-jobs"
  end

  app.post '/recurring-jobs/:name/toggle' do
    Sidekiq.reload_schedule!

    SidekiqScheduler::Scheduler.instance.toggle_job_enabled(params[:name])
    redirect "#{root_path}recurring-jobs"
  end

  app.post '/recurring-jobs/toggle-all' do
    SidekiqScheduler::Scheduler.instance.toggle_all_jobs(params[:action] == 'enable')
    redirect "#{root_path}recurring-jobs"
  end
end