def subscribe(&block)
      @subscription_block = block
      @sub = @zk.register(full_queue_path) do |event, zk|
        find_and_process_next_available(@zk.children(full_queue_path, :watch => true))
      end

      find_and_process_next_available(@zk.children(full_queue_path, :watch => true))
    end
def subscribe(&block)
      @subscription_block = block
      @sub = @zk.register(full_queue_path) do |event, zk|
        find_and_process_next_available(@zk.children(full_queue_path, :watch => true))
      end

      find_and_process_next_available(@zk.children(full_queue_path, :watch => true))
    end
@example
   # subscribe like this:
   subscribe {|title, data| handle_message!; true}
   # returning true in the block deletes the message, false unlocks and requeues

 @yield [title, data] yield to your block with the message title and the data of
   the message