V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
leeyiw
V2EX  ›  MongoDB

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

  •  
  •   leeyiw · 2016-02-21 22:44:33 +08:00 · 4391 次点击
    这是一个创建于 3232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 经验的看看这个问题怎么解。

    2 条回复    2016-02-22 09:48:57 +08:00
    int64ago
        1
    int64ago  
       2016-02-22 00:11:10 +08:00   ❤️ 1
    貌似你问的是这个?

    https://302.at/wl6yM
    leeyiw
        2
    leeyiw  
    OP
       2016-02-22 09:48:57 +08:00
    @int64ago 这个能行,不过就不是针对某个 JS 脚本了,遍历的时候把所有超时的查询都 kill 。找不到别的方案我就用这个方案咯!谢啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:30 · PVG 04:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.