【发布时间】:2015-05-11 01:43:22
【问题描述】:
我有一个 map reduce 作为 cronjob 在我的服务器上每小时运行一次。我遇到了一个错误,它阻止了 map reduce 完成。这通常发生在我在本地运行 map reduce 脚本时,它同时与服务器上的 map reduce 发生冲突。在某些情况下,当错误发生时,我在本地单独运行它作为服务器作业。错误是
errmsg: "exception: rename failed: { errmsg: "exception: target namespace exists", code: 10027, ok: 0.0 }", code: 10076, ok: 0.0 }
这个错误阻止我删除集合以及运行我的脚本来覆盖当前减少的集合。你知道如何防止这种情况发生或解决问题,以便我可以删除收藏
这是我用来运行 map reduce 的命令
articles.map_reduce(map, reduce, "articleTrending", query=queryFilter)
【问题讨论】:
-
那么你的意思是什么?你在“测试”吗?如果是这样,那么使用不同的输出集合,或者更好的是在完全不同的机器上运行您的测试。根据您所说的,当您尝试运行它时,这项工作或其他东西正在处理该集合。所以要么安排你的两个不同的工作(不知道你会拥有它们)不发生冲突,或者只是不要在相同的目标上运行。
-
工作冲突不是我得到错误的唯一情况
-
那么根据您提供的信息,您希望人们如何处理它?显然,您正试图在其他人使用它的同时替换一个集合。所以这里的理由是不要在多个地方使用同一个命名空间。
-
很好奇是否有人知道为什么会出现此错误。以及为什么 mongo 甚至不允许我放弃收藏。我不想在我引用此集合的每个文件中切换名称。你不觉得数据库的这种行为有点奇怪吗?我找到了另一个来源,他们遇到了同样的问题,但没有人有解决方案。
标签: python mongodb dictionary reduce