代码之家  ›  专栏  ›  技术社区  ›  david_adler

检查队列中是否挂起了具有特定参数的重新编码作业

  •  5
  • david_adler  · 技术社区  · 11 年前

    例如,我把一份工作排成这样

    Resque.enqueue(MyJob, user.id)
    

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

    我希望有这样的语法:

    Resque.queue('MyQueue').has_pending_job(MyJob, user.id)
    
    1 回复  |  直到 11 年前
        1
  •  4
  •   bigsolom    11 年前

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

    1. 您可以使用 has_pending_jobs 属性,当作业开始时更新为true,当作业结束时更新为false

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

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