有没有一种方法可以检查是否有任何promise正在Node应用程序中运行?假设我们有以下代码片段:
router.post('/someEndpoint', async (req, res) => {
await someFunctions();
});
我们希望创建一个端点/getRunningProcess
来检查应用程序中是否有任何正在运行的进程。有没有一种通用的方法来完成这项工作,而不是编写特定于应用程序的代码来单独检查每个进程的状态?/getRunningProcess
的代码看起来应该像这样:
router.get('/getRunningProcess', (req, res) => {
// code to check for running processes or active promises
...
res.status(200).json({ "process": process})
});
我们最初计划通过编写应用程序特定的代码来检查应用程序的任何运行进程的状态,但这将花费我们相当多的时间来完成所有事情。
1条答案
按热度按时间vltsax251#
我假设您希望计算未解决的请求的数量。
没有内置的方法来查找处于挂起状态的promise的计数。您可以使用on-finished中间件来跟踪未解决的请求。
另外,看起来你正在使用expressjs。因此,我将使用expressjs语法编写一个示例。
您可以创建一个中间件来跟踪未解决的请求。
现在,您可以在任何自定义中间件之前使用此
requestTracker
中间件:要获得未解析请求的计数,可以简单地计算
unresolvedRequestIds
中的条目数:您可以将
requestTracker
中间件添加到应用程序的顶层,而不是单独添加到所有异步路由中。但请注意,这也可能会计算非异步未解决的请求。