【发布时间】:2021-07-29 00:42:16
【问题描述】:
我刚刚在我调用的地方发现了这个错误
MyJob.perform_later(request.body.read)
使用 sidekiq active_job 作业,
调用 request.body.read 返回一些 json,我认为在某些情况下它可能包含 UTF-8 字符(即 € 符号),
在这种情况下,我得到了
Encoding::UndefinedConversionError Exception: "\xE2" from ASCII-8BIT to UTF-8
我知道 sidekiq 建议不要使用复杂或冗长的作业参数,最佳实践解决方法是什么?
我能想到的是在将字符串传递给作业之前对字符串进行base64编码(但这会使sidekiq变得更长,我不确定这是否会成为问题) 或者将实际的 json 文本存储在 db 表中,然后将新行的 id 传递给作业。这肯定行得通,但对我来说似乎有点矫枉过正。
有什么建议吗?
【问题讨论】:
标签: utf-8 sidekiq rails-activejob