Class: TxghQueue::Backends::Sqs::Job

Inherits:
Job
  • Object
show all
Defined in:
lib/txgh-queue/backends/sqs/job.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Job

#process

Constructor Details

#initialize(message, queue, logger) ⇒ Job

Returns a new instance of Job.



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/txgh-queue/backends/sqs/job.rb', line 9

def initialize(message, queue, logger)
  @message = message
  @queue = queue
  @message_attributes = MessageAttributes.from_message(message)

  # add empty retry attributes hash to sequence - will be populated when
  # the complete method is called
  message_attributes.history_sequence.add({})

  super(logger)
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



7
8
9
# File 'lib/txgh-queue/backends/sqs/job.rb', line 7

def logger
  @logger
end

#messageObject (readonly)

Returns the value of attribute message.



7
8
9
# File 'lib/txgh-queue/backends/sqs/job.rb', line 7

def message
  @message
end

#message_attributesObject (readonly)

Returns the value of attribute message_attributes.



7
8
9
# File 'lib/txgh-queue/backends/sqs/job.rb', line 7

def message_attributes
  @message_attributes
end

#queueObject (readonly)

Returns the value of attribute queue.



7
8
9
# File 'lib/txgh-queue/backends/sqs/job.rb', line 7

def queue
  @queue
end

Instance Method Details

#completeObject



21
22
23
24
25
26
27
28
29
30
# File 'lib/txgh-queue/backends/sqs/job.rb', line 21

def complete
  result = process(payload)
  logger.info("Finished processing #{message.message_id}, result: #{result.status}")

  message_attributes.history_sequence.current.merge!(attributes_for(result))

  return do_ok(result) if result.status.ok?
  return do_retry(result) if result.status.retry?
  return do_fail(result) if result.status.fail?
end