Sidekiq からの警告をデバッグするにはどうすればよいですか?
概要
Ruby on Rails アプリから次のログがあります。
- NoMethodError (undefined method `encode` for nil:NilClass
- redirect_to "/post_message#token=#{@secret.encode(token)}"
- ^^^^^^^):
- app/controllers/canvas_test_controller.rb:126:in `redirect_token`
- I, [2023-08-22T10:21:40.643432 #25] INFO -- : [3cc2fde2-4da9-451b-973e-15c8fe93d91d] [Rollbar] Scheduling item
- pid=25 tid=3a1x WARN: Job arguments to Rollbar::Delay::Sidekiq do not serialize to JSON safely. This will raise an error in
- Sidekiq 7.0. See https://github.com/mperham/sidekiq/wiki/Best-Practices or raise an error today
- by calling `Sidekiq.strict_args!` during Sidekiq initialization.
ロールバーをテストするために意図的にこのエラーを発生させましたが、なぜ Sidekiq 警告が表示されるのですか: Rollbar::Delay::Sidekiq へのジョブ引数が JSON に安全にシリアル化されません。
Sidekiq のベスト プラクティスをコードに適用しましたが、このエラーは次の原因で発生しているようです。 ロールバー::ディレイ::サイドキック。
私は次の gem を使用しています。
rollbar (3.4.0)
sidekiq (6.5.6)
Sidekiq と Rollbar の両方を最新バージョンに更新しようとしましたが、同じ警告が表示されます。これをデバッグするにはどうすればよいですか?
解決策
@cschroedさん、ありがとうございます。ロールバーのドキュメント https://docs.rollbar.com/docs/sidekiq-integration を調べ、ロールバーの設定に config.async_json_payload = true を追加すると問題が解決しました。