我正在使用resque hook实现一些resque活动的记录,例如:
def before_perform_log_start(*args)
logger.info("Job #{self.to_s} started on queue #{queue_name}") # pseudo implementation
end
现在我想要包含作业实际运行的队列。天真的方法是简单地读取@queue
实例变量,因为我们通常将其设置为指示作业队列。但是,任何来电者
可以使用enqueue_to
覆盖队列:
Resque.enqueue_to('foobar', MyJob)
所以我的问题是:我可以确定实际提取作业的队列吗?
在堆栈跟踪中,我可以看到我的作业perform
方法由Resque::Job的实例调用,该实例具有队列的访问者。但是,我认为无法获得该工作实例。