module ActionCable::Channel::PeriodicTimers

Private Instance Methods

active_periodic_timers() click to toggle source
# File lib/action_cable/channel/periodic_timers.rb, line 55
def active_periodic_timers
  @active_periodic_timers ||= []
end
start_periodic_timer(callback, every:) click to toggle source
# File lib/action_cable/channel/periodic_timers.rb, line 65
def start_periodic_timer(callback, every))
  connection.server.event_loop.timer every do
    connection.worker_pool.async_exec self, connection: connection, &callback
  end
end
start_periodic_timers() click to toggle source
# File lib/action_cable/channel/periodic_timers.rb, line 59
def start_periodic_timers
  self.class.periodic_timers.each do |callback, options|
    active_periodic_timers << start_periodic_timer(callback, every: options.fetch(:every))
  end
end
stop_periodic_timers() click to toggle source
# File lib/action_cable/channel/periodic_timers.rb, line 71
def stop_periodic_timers
  active_periodic_timers.each { |timer| timer.shutdown }
  active_periodic_timers.clear
end