10

如何在光标上指定无超时选项?

我可以从我的笔记本电脑手动运行该作业,但是服务器上发生了一些事情,并且我一直收到此错误:

MONGODB cursor.refresh() for cursor xxx 查询响应返回 CURSOR_NOT_FOUND。指定的游标无效,或者游标在服务器上可能已超时。MONGODB cursor.refresh() 用于游标 yyy

该作业是从一个 ruby​​ 调度程序文件运行的,该文件被指定为 rake 中的命名空间 rake 正在中间调用另一个 ruby​​ 模块,并且该作业在该模块的执行期间终止

我早些时候问过这个问题,但它被否决了。请不要投反对票,而是解释它的愚蠢之处,因为我真的需要解决这个问题并且无法弄清楚发生了什么。

该服务器是一种实验性的,没有任何监控工具。但这似乎是可靠的。并且没有其他作业正在运行。

4

1 回答 1

13

有关如何关闭游标超时的详细信息,请参阅 Ruby MongoDB 驱动程序的常见问题解答。

那里的例子:

@collection.find({}, :timeout => false) do |cursor|
   cursor.each do |document
     # Process documents here
   end
end
于 2012-06-06T01:02:18.833 回答