Techioz Blog

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 を追加すると問題が解決しました。