Class: Bricolage::SQSDataSource::MessageHandler
- Inherits:
-
Object
- Object
- Bricolage::SQSDataSource::MessageHandler
- Defined in:
- lib/bricolage/sqsdatasource.rb
Direct Known Subclasses
Bricolage::StreamingLoad::Dispatcher, Bricolage::StreamingLoad::TaskHandler
Instance Method Summary collapse
-
#after_message_batch ⇒ Object
Called after each message batch (ReceiveMessage) is processed.
- #call_handler_method(msg) ⇒ Object
-
#handle(msg) ⇒ Object
abstract logger().
-
#handle_unknown(msg) ⇒ Object
Unknown message handler.
- #handleable?(msg) ⇒ Boolean
- #handler_method(msg) ⇒ Object
Instance Method Details
#after_message_batch ⇒ Object
Called after each message batch (ReceiveMessage) is processed. Override this method in subclasses on demand.
143 144 |
# File 'lib/bricolage/sqsdatasource.rb', line 143 def end |
#call_handler_method(msg) ⇒ Object
126 127 128 |
# File 'lib/bricolage/sqsdatasource.rb', line 126 def call_handler_method(msg) __send__(handler_method(msg), msg) end |
#handle(msg) ⇒ Object
abstract logger()
113 114 115 116 117 118 119 120 |
# File 'lib/bricolage/sqsdatasource.rb', line 113 def handle(msg) logger.debug "handling message: #{msg.inspect}" if logger.debug? if handleable?(msg) call_handler_method(msg) else handle_unknown(msg) end end |
#handle_unknown(msg) ⇒ Object
Unknown message handler. Feel free to override this method.
136 137 138 139 |
# File 'lib/bricolage/sqsdatasource.rb', line 136 def handle_unknown(msg) # just ignore unknown message to make app migration easy logger.error "unknown message type: #{msg..inspect} (message-id: #{msg.})" end |
#handleable?(msg) ⇒ Boolean
122 123 124 |
# File 'lib/bricolage/sqsdatasource.rb', line 122 def handleable?(msg) respond_to?(handler_method(msg), true) end |
#handler_method(msg) ⇒ Object
130 131 132 |
# File 'lib/bricolage/sqsdatasource.rb', line 130 def handler_method(msg) "handle_#{msg.}".intern end |