class Hoze::PubSubMessage
Public Class Methods
new(source_message, source)
click to toggle source
# File lib/hoze/pubsub/message.rb, line 7 def initialize source_message, source @payload = source_message.data @timestamp = source_message.published_at @metadata = source_message.attributes @metadata['tries'] = (@metadata['tries'].to_i || 0) + 1 @source_message = source_message @source = source @acked = false end
Public Instance Methods
ack!()
click to toggle source
Acknowledge the message
# File lib/hoze/pubsub/message.rb, line 23 def ack! @source_message.ack! unless @acked @acked = true end
delay!(seconds)
click to toggle source
Ask for more time before acknowledging
# File lib/hoze/pubsub/message.rb, line 18 def delay! seconds @source_message.delay! seconds end
reject!()
click to toggle source
Release the message
# File lib/hoze/pubsub/message.rb, line 29 def reject! @source_message.reject! end
retry!()
click to toggle source
Retry the message
# File lib/hoze/pubsub/message.rb, line 34 def retry! ack! retry_config = @source.max_tries || 1 if @metadata['tries'] < retry_config puts "RETRYING: #{@metadata['tries']} / #{retry_config}" @source.topic.publish_async(@payload, @metadata) else puts "Dead message #{@source_message.inspect}" end end