是否有一种方法可以确定ActiveJob是在Resque工作程序上执行还是在应用程序内执行



我的rails应用程序中有一个从ActiveJob::Base扩展而来的Job,它有两种调用方式:

  1. 每天的ResqueScheduler,由Resque工作人员提取并处理
  2. 在应用程序中通过#perform_now调用,因此它由应用程序处理

有没有办法让我在工作中确定它是否由Resque员工处理?

您应该在服务器日志中看到对ActiveJob的引用。

[ActiveJob] [<YOUR-JOB-CLASS>] [b8ed2ecb-10ce-433d-8ddb-33a04c8021cd]    Performing <YOUR-JOB-CLASS> from Resque(default)...

这不是决定性的,但它是代码执行上下文中的一个强有力的指标。

您可以使用defined?(Rails)来确定您是在Rails应用程序中还是在Resque上下文中。

相关内容

最新更新