9

刚刚更新到最新版本的 mongoid (3.1.0) 和 sidekiq (2.7.2)
现在我得到了错误:failed with error 10068: "invalid operator: $oid"
通过查看代码,我看到一个这样的选择:@selector={"_id"=>{"$oid"=>"[some id]"}}
这里有什么问题?

4

2 回答 2

7

将此添加到我gemfile修复的问题中:

gem 'multi_json', '1.5.1'

我想最新版本(1.6.0)有问题

编辑: gem 已更新到修复此问题的新版本(1.6.1)。更多信息: https ://github.com/intridea/multi_json/issues/89

于 2013-02-14T06:53:54.243 回答
6

这实际上正在发生,因为 BSON::ObjectId 不是 JSON 的一部分......所以当 Sidekiq 尝试将 args 序列化给工作人员时,它会呕吐。查看此评论:https ://github.com/mperham/sidekiq/issues/951#issuecomment-19497803

修复只是在执行以下工作时将 ID 转换为字符串:

EmailSubscribe.perform_async(user.id.to_s)
于 2013-06-24T13:46:58.950 回答