Class: Sqskiq::Fetcher

Inherits:
Object
  • Object
show all
Includes:
Celluloid, Celluloid::Notifications, AWS
Defined in:
lib/sqskiq/fetch.rb

Instance Method Summary collapse

Methods included from AWS

#delete_sqs_messages, #fetch_sqs_messages, #init_queue

Constructor Details

#initialize(aws_access_key_id, aws_secret_access_key, queue_name) ⇒ Fetcher

Returns a new instance of Fetcher.



11
12
13
14
15
16
# File 'lib/sqskiq/fetch.rb', line 11

def initialize(aws_access_key_id, aws_secret_access_key, queue_name)
  init_queue(aws_access_key_id, aws_secret_access_key, queue_name)
  subscribe_interrupt

  @manager = Celluloid::Actor[:manager]
end

Instance Method Details

#fetchObject



18
19
20
21
# File 'lib/sqskiq/fetch.rb', line 18

def fetch
  messages = fetch_sqs_messages
  @manager.async.fetch_done(messages)
end

#interrupt(signal) ⇒ Object



29
30
31
# File 'lib/sqskiq/fetch.rb', line 29

def interrupt(signal)
  self.terminate
end

#subscribe_interruptObject



23
24
25
26
27
# File 'lib/sqskiq/fetch.rb', line 23

def subscribe_interrupt
  subscribe('SIGINT', :interrupt)
  subscribe('SIGTERM', :interrupt)
  subscribe('TERM', :interrupt)
end