Node.js 在NodeJS中测试长时间运行的任务

Node.js 在NodeJS中测试长时间运行的任务,node.js,rest,Node.js,Rest,我的NodeJS项目有一些长时间运行的任务,我正在项目上构建一个RESTful接口 我想测试我的REST接口是否可以继续被访问,在执行较长时间运行的任务时提供状态更新 在多线程环境中,这很容易测试,因为您只需将一个线程休眠一段时间,因为您的HTTP控制器在另一个线程中运行。这在NodeJS中显然是不可能的(由于单线程的原因):) 我可以删除任务,但是如何让存根“等待”一段时间而不阻塞线程,以便命中REST端点并获取状态更新?假设您指的是CPU限制的长时间运行的任务 最好的方法是将CPU绑定的任务

我的NodeJS项目有一些长时间运行的任务,我正在项目上构建一个RESTful接口

我想测试我的REST接口是否可以继续被访问,在执行较长时间运行的任务时提供状态更新

在多线程环境中,这很容易测试,因为您只需将一个线程休眠一段时间,因为您的HTTP控制器在另一个线程中运行。这在NodeJS中显然是不可能的(由于单线程的原因):)


我可以删除任务,但是如何让存根“等待”一段时间而不阻塞线程,以便命中REST端点并获取状态更新?

假设您指的是CPU限制的长时间运行的任务

最好的方法是将CPU绑定的任务发送到子进程。你可以使用这个软件包

使用
child\u process
可以生成新的进程,并通过管道与它们通信。让您的子进程预期stdin上的数据,并将结果写入stdout

您的节点进程可以在另一个进程中生成所有CPU绑定的任务,同时继续为网络请求提供服务


您还应该查看该包。

假设您指的是CPU限制的长时间运行任务

最好的方法是将CPU绑定的任务发送到子进程。你可以使用这个软件包

使用
child\u process
可以生成新的进程,并通过管道与它们通信。让您的子进程预期stdin上的数据,并将结果写入stdout

您的节点进程可以在另一个进程中生成所有CPU绑定的任务,同时继续为网络请求提供服务


您还应该查看该包。

简而言之,主节点进程中的长时间运行任务不是事件循环的朋友。简而言之,主节点进程中的长时间运行任务不是事件循环的朋友。