2012-06-04 31 views
0

我有一个处理某些'产品'thar通过JSON发送的队列。我按照{1,2,3,4}的顺序收到它们,但在{1,3,2,4}中进行了resque处理。由于旧版本的Product可以覆盖已经处理过的新版本
有没有办法让resque像process {job} orderede by {job.field_I_want}一样?如何使订购再处理作业

编辑:那排队工作

def produto 
     if params[:json] 
#   upload = params[:json] 
#   content = upload.read 
#   parsed_json = JSON(content) 

      parsed_json = JSON(params[:json]) 
      parsed_json['idFila'] = params[:idFila] 

      logger.info parsed_json 

      Resque.enqueue(ProdutoWorker, parsed_json) 
      render json: ActiveSupport::JSON.encode(Retorno.new(:status => "OK", :mensagem => "Produto recebido")), :status => :ok 
     else 
      render json: ActiveSupport::JSON.encode(Retorno.new(:status => "Erro", :mensagem => "Sem JSON")), :status => :not_found 
     end 

     rescue => exception 
      render json: ActiveSupport::JSON.encode(Retorno.new(:status => "Erro", :mensagem => "#{exception}")), :status => :error 
     end #Produto 

回答

0

resque处理工作中,他们排队的顺序代码,你可以张贴排队的作业的代码?

+0

编辑我的问题。谢谢 –

+0

我不能说那么多的代码,我想问题是哈希没有命令,请尝试在你的worker的执行方法上做这样的事情: parsed_json.keys.sort.each do | key | process(parsed_json [key]) end resque worker的执行方法的相关代码是什么? – arieljuod

+0

Ruby 1.9中的哈希保持顺序。 –