Sha256: 46377fc7f3b733170856e1b8d0b7bbf47f8a1b25548de376252c0d18e45e729a
Contents?: true
Size: 1006 Bytes
Versions: 3
Compression:
Stored size: 1006 Bytes
Contents
require "thread_safe" module Houston class Timer def initialize @queued_timers = ThreadSafe::Array.new Houston.observer.on "daemon:scheduler:start", raise: true do schedule_queued_timers! end end def at(time, &block) return schedule_later :at, time, block unless $scheduler days_of_the_week = :day days_of_the_week, time = *time if time.is_a?(Array) cronline = Whenever::Output::Cron.new(days_of_the_week, nil, time) $scheduler.cron cronline.time_in_cron_syntax, &block end def every(interval, &block) return schedule_later :every, interval, block unless $scheduler $scheduler.every interval, &block end private attr_reader :queued_timers def schedule_later(*args) queued_timers.push args end def schedule_queued_timers! while timer = queued_timers.pop method_name, value, block = timer public_send method_name, value, &block end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
houston-core-0.8.0.pre | lib/houston/boot/timer.rb |
houston-core-0.7.0 | lib/houston/boot/timer.rb |
houston-core-0.7.0.beta4 | lib/houston/boot/timer.rb |