【发布时间】:2023-03-19 06:35:02
【问题描述】:
我正在使用 Resque 来 enqueue 工作。
我启动了一个工人,并且作业被处理。
我的作业扩展了一个 gem,它实现了诸如 before_enqueue、after_enqueue、before_perform、after_perform 之类的作业挂钩并将内容发送到 statsd。那些工作。但是,before_dequeue 和 after_dequeue 似乎没有被调用。有什么原因吗?
另外,我对 Resque 的理解还不是全部。我会调用Resque.enqueue 来排队一个作业类,然后如果我启动一个Resque 工作人员,它会自动从队列中弹出一个任务,然后是perform 该任务。 dequeue 在哪里发挥作用?我注意到dequeue 破坏了任务,dequeue 步骤何时发生在 Resque 工作流程中?
我想挂接到after_dequeue,因为我想记录一个任务在队列中停留的时间,所以我需要挂接到before_enqueue和after_dequeue。
【问题讨论】:
-
嗨,Raymond,您是否碰巧将入队/出队/排队时间的代码抽象为可以共享的内容?希望做同样的事情。
标签: ruby-on-rails ruby ruby-on-rails-3 resque worker