我的 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 警告:
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 都更新到最新版本,但仍然存在相同的警告。我该如何调试这个?
谢谢@cschroed。我查看了 rollbar 的文档 https://docs.rollbar.com/docs/sidekiq-integration 并将
config.async_json_payload = true
添加到 rollbar 的配置中解决了问题。