Class: UsbunfreezeDaemon::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/usbunfreeze_daemon/server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#conf_pathObject

Returns the value of attribute conf_path.



13
14
15
# File 'lib/usbunfreeze_daemon/server.rb', line 13

def conf_path
  @conf_path
end

#loggerObject

Returns the value of attribute logger.



14
15
16
# File 'lib/usbunfreeze_daemon/server.rb', line 14

def logger
  @logger
end

Instance Method Details

#runObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/usbunfreeze_daemon/server.rb', line 16

def run
  @logger.info "Loading config from #{@conf_path}"
  Settings.source @conf_path

  @logger.info "Running with executable=#{Settings.exec_command}"

  sqs = AWS::SQS.new(access_key_id: Settings.sqs.access_key_id,
  secret_access_key: Settings.sqs.secret_access_key)
  raise 'No SQS object' unless sqs

  @logger.info "Get queue '#{Settings.sqs.queue_name}' ..."
  q = sqs.queues.named(Settings.sqs.queue_name)
  raise 'Cannot get queue' unless q
  raise 'Queue does not exist' unless q.exists?

  interval = [Settings.sqs.interval.to_i, AWS::SQS::Queue::DEFAULT_WAIT_TIME_SECONDS].max
  @logger.info "Start polling queue each #{interval} seconds"

  q.poll(:wait_time_seconds => interval) do |m|
    handle_message m
  end

rescue => e
  @logger.error "Error:" + e.message
  @logger.error e.backtrace.map{|s| "\t"+s}.join("\n")
  exit 1
end