class Slappy::Schedule
Constants
- DEFAULT_MAX_THREAD
Public Instance Methods
list()
click to toggle source
# File lib/slappy/schedule.rb, line 36 def list @schedule_list ||= {} end
register(schedule, options = {}, &block)
click to toggle source
# 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)
click to toggle source
# 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
Private Instance Methods
generate_id()
click to toggle source
# File lib/slappy/schedule.rb, line 42 def generate_id digit = Math.log10(DEFAULT_MAX_THREAD).to_i + 1 id = format("%0#{digit}d", SecureRandom.random_number(DEFAULT_MAX_THREAD)) id = generate_id if list.include? id id end