Class: Slappy::Schedule
Defined Under Namespace
Classes: InvalidFormatError, OverScheduleError
Constant Summary
collapse
- DEFAULT_MAX_THREAD =
1000
Instance Method Summary
collapse
Methods included from Debuggable
included
Instance Method Details
#list ⇒ Object
36
37
38
|
# File 'lib/slappy/schedule.rb', line 36
def list
@schedule_list ||= {}
end
|
#register(schedule, options = {}, &block) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/slappy/schedule.rb', line 12
def register(schedule, options = {}, &block)
id = options[:id] || generate_id
list[id] = Thread.new do
time = Chrono::Iterator.new(schedule).next
Debug.log "Schedule #{id} registerd to #{schedule}, first call to #{time}"
Chrono::Trigger.new(schedule) do
block.call
time = Chrono::Iterator.new(schedule).next
Debug.log "Schedule #{id} called by #{schedule}, next call to #{time}"
end.run
end
id
end
|
#remove(id) ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/slappy/schedule.rb', line 26
def remove(id)
registered = @schedule_list.include? id
if registered
@schedule_list[id].kill
@schedule_list.delete id
Debug.log "Schedule #{id} deleted"
end
registered
end
|