我的 Rails 应用程序中有一个从 ActiveJob::Base 扩展的作业,它有两种调用方式:
- ResqueScheduler 每天,由 Resque 工作人员拾取并处理
- 在应用程序内通过#perform_now 调用,因此它由应用程序处理。
有没有办法让我在工作中确定它是否正在由 Resque 工作人员处理?
我的 Rails 应用程序中有一个从 ActiveJob::Base 扩展的作业,它有两种调用方式:
有没有办法让我在工作中确定它是否正在由 Resque 工作人员处理?
您应该ActiveJob
在服务器日志中看到对的引用。
[ActiveJob] [<YOUR-JOB-CLASS>] [b8ed2ecb-10ce-433d-8ddb-33a04c8021cd] Performing <YOUR-JOB-CLASS> from Resque(default)...
这不是确定的,但它是您的代码正在执行的上下文的一个强有力的指标。
您可以使用它defined?(Rails)
来确定您是在 Rails 应用程序中还是在 Resque 上下文中。