lib/adhearsion/events.rb in adhearsion-2.0.0 vs lib/adhearsion/events.rb in adhearsion-2.0.1
- old
+ new
@@ -45,18 +45,21 @@
def reinitialize_queue!
GirlFriday.shutdown! if queue?
# TODO: Extract number of threads to use from Adhearsion.config
@queue = GirlFriday::WorkQueue.new 'main_queue', :error_handler => ErrorHandler do |message|
- begin
- handle_message message
- rescue Exception => e
- ErrorHandler.new.handle e
- end
+ work message
end
end
+ def work(message)
+ handle_message message
+ rescue => e
+ raise if message.type == :exception
+ trigger :exception, e
+ end
+
def handle_message(message)
trigger_handler message.type, message.object
end
def draw(&block)
@@ -80,10 +83,11 @@
super && throw(:pass)
end
class ErrorHandler
def handle(exception)
- Events.trigger :exception, exception
+ logger.error "Exception encountered in exception handler!"
+ logger.error exception
end
end
end
end