Quantcast
Channel: hachi8833の記事一覧|TechRacho by BPS株式会社
Viewing all articles
Browse latest Browse all 1759

Rails 7.1: バックグラウンドジョブのenqueue呼び出し元をログ出力可能になった(翻訳)

$
0
0

Rails 7.1: バックグラウンドジョブのenqueue呼び出し元をログ出力可能になった(翻訳)

このブログ記事はRails 7シリーズの一環です。

Rails 7.1のActive Jobに、バックグラウンドジョブのenqueue呼び出し元をログ出力する新しいオプションが導入されました。これはジョブがどこでエンキューされたかという情報を提供するので、デバッグで非常に有用です。ログ出力は以下のようになります。

[ActiveJob] Enqueued NotifySubscribersJob (Job ID: 5945980f-303e-4c3f-af5b-e22be170f7c5) to Sidekiq(default)
[ActiveJob] ↳ app/models/post.rb:14 in `notify_subscribers`

上のログを調べれば、Postモデルのnotify_subscribersメソッドで
NotifySubscribersJobというジョブがエンキューされたことがすぐにわかるので、ジョブがどこから来たかを明確に把握できるようになります。

この機能を有効にするには、config/environments/development.rbで以下のコンフィグを設定する必要があります。

# config/environments/development.rb
config.active_job.verbose_enqueue_logs = true

ただし、Rails 7.1ではこのdevelopment環境のコンフィグがデフォルトで有効になります。

重要なのは、production環境で冗長なエンキューログを有効にするのは推奨されていないことです。この機能で使われているRubyのKernel#callerメソッドは遅い可能性があるためです。

詳しくは#47839をご覧ください。

関連記事

Rails: SidekiqはActive Jobを経由せずに直接使おう(翻訳)

The post Rails 7.1: バックグラウンドジョブのenqueue呼び出し元をログ出力可能になった(翻訳) first appeared on TechRacho.


Viewing all articles
Browse latest Browse all 1759

Trending Articles