我正在尝试编写一个 Node.js 程序来执行和监视 javascript 程序。我正在寻找一种方法来确定受监控的程序是否仍在“运行”,即做任何有用的事情。
在我目前的方法中,当接收到要测试的代码时,我会启动一个新的子进程并将代码交给它。子进程检测代码使用Contextify创建沙箱并使用此沙箱执行代码。
调用返回后,sandbox.run(code)
我知道代码的阻塞部分已完成,可以在 UI 中显示。但是,我现在不知道代码是否使用 setTimeouts 注册了任何计时器或创建了任何其他会导致部分代码稍后退出的事件源。所以我不知道它是否真的“完成”了。
Node.js 中有没有办法检查事件循环中是否还有要处理的事件(或者更好的是,还剩下多少个)?
我发现了this other question,但它只谈论如何监控事件循环以找出节点的性能是否仍然很好。但我对性能不感兴趣(我不在乎执行代码是阻塞 10 秒还是每 2 分钟只做 1 毫秒),我不想使用外部工具但要了解状态来自节点本身的事件循环。那可能吗?