-
Notifications
You must be signed in to change notification settings - Fork 236
/
web.rb
28 lines (22 loc) · 924 Bytes
/
web.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require_relative 'job_presenter'
module SidekiqScheduler
# Hook into *Sidekiq::Web* Sinatra app which adds a new '/recurring-jobs' page
module Web
VIEW_PATH = File.expand_path('../../../web/views', __FILE__)
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.get '/recurring-jobs/:name/enqueue' do
schedule = Sidekiq.get_schedule(params[:name])
Sidekiq::Scheduler.enqueue_job(schedule)
redirect to('/recurring-jobs')
end
end
end
end
require 'sidekiq/web' unless defined?(Sidekiq::Web)
Sidekiq::Web.register(SidekiqScheduler::Web)
Sidekiq::Web.tabs['recurring_jobs'] = 'recurring-jobs'
Sidekiq::Web.set :locales, Sidekiq::Web.locales << File.expand_path(File.dirname(__FILE__) + "/../../web/locales")