lib/refinery/daemon.rb in aeden-refinery-0.9.4 vs lib/refinery/daemon.rb in aeden-refinery-0.9.5
- old
+ new
@@ -45,23 +45,28 @@
# * <tt>server</tt>: The server instance
# * <tt>name</tt>: The processor name
# * <tt>waiting_queue</tt>: The waiting queue that provides messages to be processed
# * <tt>error_queue</tt>: The queue where errors are posted.
# * <tt>done_queue</tt>: The queue for messages that have been processed.
- def initialize(server, name, waiting_queue, error_queue, done_queue)
+ # * <tt>settings</tt>: The settings hash from the config.
+ #
+ # The settings hash may contain the following options:
+ # * <tt>visibility</tt>: The time in seconds that the message is hidden
+ # in the queue.
+ def initialize(server, name, waiting_queue, error_queue, done_queue, settings={})
Refinery::Server.logger.debug "Starting daemon"
@server = server
@name = name
@waiting_queue = waiting_queue
@error_queue = error_queue
@done_queue = done_queue
@thread = Thread.new(self) do |daemon|
- logger.debug "Running daemon thread"
+ logger.debug "Running daemon thread: #{name} (settings: #{settings.inspect})"
while(running?)
begin
- while (message = waiting_queue.receive)
+ while (message = waiting_queue.receive(settings['visibility']))
worker = load_worker_class(name).new(self)
begin
result, run_time = worker.run(decode_message(message.body))
if result
done_message = {
\ No newline at end of file