Module: SidekiqScheduler::Web

Defined in:
lib/sidekiq-scheduler/web.rb

Overview

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

Defined Under Namespace

Modules: Helpers

Constant Summary collapse

VIEW_PATH =
File.expand_path(SidekiqAdapter::SIDEKIQ_GTE_8_0_0 ? '../../../web/views' : '../../../web/views/sidekiq73', __FILE__)

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/sidekiq-scheduler/web.rb', line 29

def self.registered(app)
  app.helpers(Helpers)

  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(sidekiq_scheduler_fetch_route_param(: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(sidekiq_scheduler_fetch_route_param(:name))
    redirect "#{root_path}recurring-jobs"
  end

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