# File lib/ruote-amqp/participant.rb, line 140
    def consume(workitem)

      target_queue = determine_queue(workitem)

      raise 'no queue specified (outbound delivery)' unless target_queue

      q = MQ.queue( target_queue, :durable => true )
      @forget = determine_forget( workitem )

      opts = {
        :persistent => RuoteAMQP.use_persistent_messages?,
        :content_type => 'application/json',
                :reply_to => 'ruote_workitems',
          }

      if message = workitem.fields['message'] || workitem.params['message']

        @forget = true # sending a message implies 'forget' => true

        q.publish(message, opts)

      else

        q.publish(encode_workitem(workitem), opts)
      end

      reply_to_engine( workitem ) if @forget
    end