如何调试来自 Sidekiq 的“Rollbar::Delay::Sidekiq 的作业参数不能安全地序列化为 JSON”警告?

问题描述 投票:0回答:1

我的 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 都更新到最新版本,但仍然存在相同的警告。我该如何调试这个?

ruby-on-rails ruby sidekiq deprecation-warning rollbar
1个回答
0
投票

谢谢@cschroed。我查看了 rollbar 的文档 https://docs.rollbar.com/docs/sidekiq-integration 并将

config.async_json_payload = true
添加到 rollbar 的配置中解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.