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
q.publish(message, opts)
else
q.publish(encode_workitem(workitem), opts)
end
reply_to_engine( workitem ) if @forget
end