MongoDB 如何关闭一个 JavaScript 脚本文件正在执行的所有操作

2016-02-21 22:44:33 +08:00
 leeyiw

RT ,场景是这样的:

我们有需求是按照用户输入的特定条件,构造 MongoDB 的 JavaScript 查询脚本,然后使用 mongo a.js 这样的命令进行执行。在 JS 脚本里面会调用 connect 连接库和认证。

有时候用户输入的条件比较模糊,我们的查询可能需要很多时间,这个时候会比较浪费 CPU ,我想做一个功能监控这个 mongo 进程的执行时间,比如 120s 之后还在执行就 kill 这个进程。实际上也做了,但是发现 kill 了 mongo 进程之后, MongoDB 的 server 端进程还是 100% 在跑着。想达到的最终目的是 MongoDB server 的这个进程也能把当前查询任务停掉。

查了一些资料,看 MongoDB 有 db.killOp 的函数可以用,但是令人发愁是我的客户端 JS 脚本( a.js )根本没法获取当前的 Operation ID 。求各位有 MongoDB 经验的看看这个问题怎么解。

4372 次点击
所在节点    MongoDB
2 条回复
int64ago
2016-02-22 00:11:10 +08:00
貌似你问的是这个?

https://302.at/wl6yM
leeyiw
2016-02-22 09:48:57 +08:00
@int64ago 这个能行,不过就不是针对某个 JS 脚本了,遍历的时候把所有超时的查询都 kill 。找不到别的方案我就用这个方案咯!谢啦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258075

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX