Class: FastlyNsq::Message
- Inherits:
-
Object
- Object
- FastlyNsq::Message
- Extended by:
- Forwardable
- Defined in:
- lib/fastly_nsq/message.rb
Overview
Adapter to Nsq::Message. Provides convenience methods for interacting with a message. Delegates management methods to the Nsq::Message
Instance Attribute Summary collapse
-
#managed ⇒ Symbol
readonly
Message state.
- #nsq_message ⇒ Nsq::Message readonly
-
#raw_body ⇒ String
(also: #to_s)
readonly
Nsq::Message body.
Instance Method Summary collapse
-
#attempts ⇒ Nsq::Message#attempts
Delegated to
self.nsq_message
. - #body ⇒ Object
- #data ⇒ Object
-
#finish ⇒ Object
Finish an NSQ message.
-
#id ⇒ Nsq::Message#id
Delegated to
self.nsq_message
. -
#initialize(nsq_message) ⇒ Message
constructor
A new instance of Message.
- #meta ⇒ Object
-
#requeue(timeout = nil) ⇒ Object
Requeue an NSQ Message If the
timeout
parameter or the caclulated backoff is greater than FastlyNsq.max_req_timeout, themax_req_timeout
will be used to requeue the message. -
#timestamp ⇒ Nsq::Message#timestamp
Delegated to
self.nsq_message
. -
#touch ⇒ Nsq::Message#touch
Delegated to
self.nsq_message
.
Constructor Details
#initialize(nsq_message) ⇒ Message
Returns a new instance of Message.
43 44 45 46 |
# File 'lib/fastly_nsq/message.rb', line 43 def initialize() @nsq_message = @raw_body = .body end |
Instance Attribute Details
#managed ⇒ Symbol (readonly)
Returns Message state. Returns nil
if message has not been requeued or finished.
30 31 32 |
# File 'lib/fastly_nsq/message.rb', line 30 def managed @managed end |
#nsq_message ⇒ Nsq::Message (readonly)
34 35 36 |
# File 'lib/fastly_nsq/message.rb', line 34 def @nsq_message end |
#raw_body ⇒ String (readonly) Also known as: to_s
Returns Nsq::Message body.
37 38 39 |
# File 'lib/fastly_nsq/message.rb', line 37 def raw_body @raw_body end |
Instance Method Details
#attempts ⇒ Nsq::Message#attempts
Delegated to self.nsq_message
27 |
# File 'lib/fastly_nsq/message.rb', line 27 def_delegators :@nsq_message, :attempts, :touch, :timestamp, :id |
#body ⇒ Object
56 57 58 |
# File 'lib/fastly_nsq/message.rb', line 56 def body @body ||= JSON.parse(raw_body) end |
#data ⇒ Object
48 49 50 |
# File 'lib/fastly_nsq/message.rb', line 48 def data @data ||= body["data"] end |
#finish ⇒ Object
Finish an NSQ message
62 63 64 65 66 67 |
# File 'lib/fastly_nsq/message.rb', line 62 def finish return managed if managed @managed = :finished .finish end |
#id ⇒ Nsq::Message#id
Delegated to self.nsq_message
27 |
# File 'lib/fastly_nsq/message.rb', line 27 def_delegators :@nsq_message, :attempts, :touch, :timestamp, :id |
#meta ⇒ Object
52 53 54 |
# File 'lib/fastly_nsq/message.rb', line 52 def @meta ||= body["meta"] end |
#requeue(timeout = nil) ⇒ Object
Requeue an NSQ Message If the timeout
parameter or the caclulated backoff is greater than FastlyNsq.max_req_timeout, the max_req_timeout
will be used to requeue the message.
75 76 77 78 79 80 81 82 83 |
# File 'lib/fastly_nsq/message.rb', line 75 def requeue(timeout = nil) return managed if managed timeout ||= requeue_period timeout = [timeout, FastlyNsq.max_req_timeout].min @managed = :requeued .requeue(timeout) end |
#timestamp ⇒ Nsq::Message#timestamp
Delegated to self.nsq_message
27 |
# File 'lib/fastly_nsq/message.rb', line 27 def_delegators :@nsq_message, :attempts, :touch, :timestamp, :id |
#touch ⇒ Nsq::Message#touch
Delegated to self.nsq_message
27 |
# File 'lib/fastly_nsq/message.rb', line 27 def_delegators :@nsq_message, :attempts, :touch, :timestamp, :id |