6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/scheduler/web.rb', line 6
def self.registered(app)
app.get "/scheduler" do
Scheduler::Connection.with_connection("default") do
@manager = Scheduler::Manager.without_runner
@schedules = Scheduler::Manager.discover_schedules.sort do |a,b|
a_next = a.schedule_info.next_run
b_next = b.schedule_info.next_run
if a_next && b_next
a_next <=> b_next
elsif a_next
-1
else
1
end
end
erb File.read(File.join(VIEWS, 'scheduler.erb')), locals: {view_path: VIEWS}
end
end
app.post "/scheduler/:name/trigger" do
halt 404 unless (name = params[:name])
Scheduler::Connection.with_connection("default") do
klass = name.constantize
info = klass.schedule_info
info.next_run = Time.now.to_f
info.write!
redirect "#{root_path}scheduler"
end
end
end
|