失败,错误10068:“运算符无效:$ oid”
刚更新到最新版本的mongoid(3.1.0)和sidekiq(2.7.2)
现在我收到错误: failed with error 10068: "invalid operator: $oid"
从查看代码我看到一个像这样的选择: @selector={"_id"=>{"$oid"=>"[some id]"}}
什么可以在这里出错?
将此添加到我的gemfile
修复了问题:
gem 'multi_json', '1.5.1'
我猜最新版本有问题(1.6.0)
编辑:gem已更新到修复此问题的新版本(1.6.1)。 更多信息: https : //github.com/intridea/multi_json/issues/89
这实际上是因为BSON :: ObjectId不是JSON的一部分……所以当Sidekiq试图将args序列化为工作者时,它就会发挥作用。 看看这个评论: https : //github.com/mperham/sidekiq/issues/951#issuecomment-19497803
该修复只是在执行如下作业时将ID转换为字符串:
EmailSubscribe.perform_async(user.id.to_s)