我正在为我的组织使用 Node.js 编写工资管理 Web 应用程序。在许多情况下,应用程序应涉及用于计算数字的 CPU 密集型数学计算,并且许多用户也尝试模拟执行此操作。
如果我简单地编写逻辑(抛开我已经从算法和数据结构的角度尽最大努力来控制复杂性这一事实),它将同步运行,阻塞事件循环并使请求、响应变慢。
如何解决这种情况?有哪些可能的选项可以异步执行此操作?我还想提一下,可以让这个计算内容在后台运行,稍后我可以选择通过有关状态的通知告诉用户。我在这个地方到处寻找解决方案,找到了一些解决方案,但只是理论上的,我还没有通过实现来测试它们。下面提到:
- 集群 Node 服务器
- 使用工作线程
- 使用备用服务器并进行一些负载平衡。
- 使用消息队列并将其与工作线程结合起来执行后台任务。
有人可以就这种情况向我提出一些经过考验的建议吗?还有一些与之相关的教程链接。
最佳答案
您可能想尝试 Web Workers,它易于使用且有文档记录。 https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers
关于node.js - 如何在nodejs中运行长时间运行的同步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60214286/