检查具有特定args的resque作业是否在队列中待处理

时间:2015-09-07 18:02:44

标签: ruby-on-rails ruby ruby-on-rails-4 resque

例如,我将工作列入了

Resque.enqueue(MyJob, user.id)

在使用相同的user.id对另一个作业进行排队之前,我想检查队列中是否已存在具有该用户ID的作业。

我希望有一些语法:

Resque.queue('MyQueue').has_pending_job(MyJob, user.id)

1 个答案:

答案 0 :(得分:4)

我不认为有这样的事情,你可以通过多种选择实现同样的目标

  1. 您可以在用户中拥有has_pending_jobs属性,在作业开始时将其更新为true,在作业结束时将其更新为

  2. 使用resque-status扩展程序https://github.com/quirkey/resque-status来跟踪为某个用户排队的job_ids

  3. 为每个用户使用单独的队列(这不是可扩展的)并检查队列中是否存在用户的某些内容