ruby 如何调试`Job arguments to Rollbar::Delay::Sidekiq do not serialize to JSON safely`警告来自Sidekiq?

dxxyhpgq  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(100)

下面是我的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.

我故意提出这个错误来测试rollbar,但为什么我得到一个Sidekiq警告:Job arguments to Rollbar::Delay::Sidekiq do not serialize to JSON safely.
我在代码中应用了Sidekiq的最佳实践,但这个错误似乎来自Rollbar::Delay::Sidekiq
我正在使用以下宝石:

rollbar (3.4.0)
sidekiq (6.5.6)

我试着更新sidekiq和rollbar到最新版本,但仍然存在相同的警告。我如何调试这个?

ycggw6v2

ycggw6v21#

谢谢你@cschroed。我查看了rollbar的文档https://docs.rollbar.com/docs/sidekiq-integration,并将config.async_json_payload = true添加到rollbar的配置中解决了这个问题。

相关问题