2016-04-30 13 views
0

私はActiveJob ::ベースから延びている私のレールのアプリで仕事を持っており、それが呼ばれている2つの方法があります。Resqueワーカーまたはアプリケーション内でActiveJobが実行されているかどうかを判断する方法はありますか?

  1. ResqueSchedulerを、それがResqueワーカーによってピックアップされ、日常的、には処理済み
  2. #perform_now呼び出しでアプリ内にあるため、アプリで処理されます。

Resqueワーカーによって処理されているかどうかをジョブ内で判断する方法はありますか?

答えて

0

サーバーログにActiveJobという参照が表示されます。

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

これは確定的ではありませんが、コードが実行されている状況を示す強力な指標です。

+0

私はコード実行中に把握しようとしています - ジョブがバックグラウンドで実行されている場合は特定の情報を記録しますが、#perform_nowが呼び出された場合は記録しません。 – mosquito242

+0

私が今までに見つけたベストソリューションは、基本的に引数に変数を追加するperform_nowメソッドをオーバーライドしていますが、より良い方法があることを期待していました。 – mosquito242

0

defined?(Rails)を使用して、あなたがRailsアプリの中にいるのか、あなたがResqueのコンテキストにいるのかを判断できます。

関連する問題