resque中的问题:完成处理后,作业没有从队列中删除

我在rails应用程序中使用resque和resque-scheduler。 我在使用resque-scheduler时遇到了奇怪的问题。 一旦完成“执行”方法,我的一个工作就是不会从队列中删除。 我需要明确地将其删除以退出队列,然后队列中的其他作业开始执行。

工作类很简单,如:

class FooJob @queue = :high_volume def self.perform puts "FooJob#perform:" # some method call end end 

resque_schedule.yml包含:

  add_jobs_from_foo: cron: "15 * * * *" class: FooJob description: "enqueue jobs from Foo" 

它可能是gem版本的问题吗? 还是其他什么?

你真的通过直接查看redis来validation吗? 在perform甚至开始执行之前,作业将从队列中删除。

让我们试试这个gem“resque-status”

获得工作状态 –

 status = Resque::Plugins::Status::Hash.get(job_id) 

Resque :: Plugins :: Status :: Hash.get(job_id)对象将返回:

 status.pct_complete #=> 0 status.status #=> 'queued' status.queued? #=> true status.working? #=> false status.time #=> Time object status.message #=> "Created at ..." 

得到这个gem和详细信息: https : //github.com/quirkey/resque-status