我有一个网站可以进行标准的数据绑定调用,但是还有一些CPU密集型任务,每天运行几次,主要由管理员执行。
这些任务包括从数据库中获取数据,运行一些耗时的不同算法,然后重新上载数据。制作这些调用并让它们在不阻塞事件循环的情况下运行的最佳方法是什么?
我当然希望在服务器上保留计算,以便网络工作人员不会在这里工作。这里的儿童过程是否足够?或者我应该在后台运行单独的线程来处理所有/api/admin
次呼叫吗?
答案 0 :(得分:1)
Node.js中这个场景的基本答案是使用核心群集模块 - https://nodejs.org/docs/latest/api/cluster.html
这是一个可接受的API:
这样,在子实例中完成的任何工作都不会阻止你的主事件循环。