Class: Webmoney::Messenger
- Inherits:
-
Object
- Object
- Webmoney::Messenger
- Defined in:
- lib/messenger.rb
Instance Attribute Summary collapse
-
#thread ⇒ Object
readonly
Returns the value of attribute thread.
Instance Method Summary collapse
-
#initialize(owner, &logger) ⇒ Messenger
constructor
A new instance of Messenger.
- #push(msg) ⇒ Object
Constructor Details
#initialize(owner, &logger) ⇒ Messenger
Returns a new instance of Messenger.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/messenger.rb', line 9 def initialize(owner, &logger) @webmoney = owner @queue = Queue.new @thread = Thread.new(@queue) do |q| loop do msg = q.pop unless msg.nil? begin result = @webmoney.request(:send_message, msg) logger.call(msg, result) # Requeue message on fail @queue.push(msg) unless result.kind_of?(Hash) rescue ResultError => e logger.call(msg, e) # Requeue message @queue.push(msg) end end sleep(0.2) end end end |
Instance Attribute Details
#thread ⇒ Object (readonly)
Returns the value of attribute thread.
7 8 9 |
# File 'lib/messenger.rb', line 7 def thread @thread end |
Instance Method Details
#push(msg) ⇒ Object
32 33 34 |
# File 'lib/messenger.rb', line 32 def push(msg) @queue.push(msg) end |