Class: Osbourne::WorkerBase

Inherits:
Object
  • Object
show all
Defined in:
lib/osbourne/worker_base.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



28
29
30
# File 'lib/osbourne/worker_base.rb', line 28

def config
  @config
end

.queueObject

Returns the value of attribute queue.



28
29
30
# File 'lib/osbourne/worker_base.rb', line 28

def queue
  @queue
end

.subscriptionsObject

Returns the value of attribute subscriptions.



28
29
30
# File 'lib/osbourne/worker_base.rb', line 28

def subscriptions
  @subscriptions
end

.topicsObject

Returns the value of attribute topics.



28
29
30
# File 'lib/osbourne/worker_base.rb', line 28

def topics
  @topics
end

Class Method Details

.dead_letter_queueObject



39
40
41
42
43
# File 'lib/osbourne/worker_base.rb', line 39

def dead_letter_queue
  return unless config[:dead_letter]

  @dead_letter_queue ||= Queue.new(dead_letter_queue_name)
end

.descendantsObject



30
31
32
# File 'lib/osbourne/worker_base.rb', line 30

def descendants
  ObjectSpace.each_object(Class).select {|klass| klass < self }
end

.polling_queueObject



45
46
47
# File 'lib/osbourne/worker_base.rb', line 45

def polling_queue
  Aws::SQS::QueuePoller.new(queue.url, client: Osbourne.sqs_client)
end

.provisionObject



34
35
36
37
# File 'lib/osbourne/worker_base.rb', line 34

def provision
  register
  register_dead_letter_queue
end

Instance Method Details

#configObject



7
8
9
# File 'lib/osbourne/worker_base.rb', line 7

def config
  self.class.config
end

#config=(config) ⇒ Object



15
16
17
# File 'lib/osbourne/worker_base.rb', line 15

def config=(config)
  self.class.config = config
end

#polling_queueObject



23
24
25
# File 'lib/osbourne/worker_base.rb', line 23

def polling_queue
  @polling_queue ||= self.class.polling_queue
end

#process(_message) ⇒ Object

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/osbourne/worker_base.rb', line 11

def process(_message)
  raise NotImplementedError, "#{self} must implement class method `process`"
end

#queueObject



19
20
21
# File 'lib/osbourne/worker_base.rb', line 19

def queue
  self.class.queue
end