Method: Fancybox2::Module::Base#start_sending_alive

Defined in:
lib/fancybox2/module/base.rb

#start_sending_alive(interval: 5000) ⇒ Object



228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
# File 'lib/fancybox2/module/base.rb', line 228

def start_sending_alive(interval: 5000)
  # TODO: replace the alive interval task with Eventmachine?
  # Interval is expected to be msec, so convert it to secs
  interval /= 1000.0
  @alive_task.shutdown if @alive_task
  @alive_task = Concurrent::TimerTask.new(execution_interval: interval, timeout_interval: 2, run_now: true) do
    packet = { status: @status, lastSeen: Time.now.utc, data: nil }
    begin
      packet[:data] = alive_message_data
      message_to :core, :alive, packet
    rescue StandardError => e
      logger.error "Error in alive_message_data callback:  #{e.message}"
      logger.error e.backtrace.join "\n"
    end
  end
  @alive_task.execute
end