我正在为我的组织在 nodejs 中编写工资管理 Web 应用程序。在许多情况下,应用程序将涉及用于计算数字的 cpu 密集型数学计算,并且许多用户也试图同时进行此操作。
如果我清楚地编写逻辑(撇开我已经从算法和数据结构的角度尽力控制复杂性这一事实不谈)它将同步运行,阻塞事件循环并使请求、响应变慢。
如何解决这种情况?异步执行此操作的可能选项是什么?我还想提一下,可以让这个计算的东西在后台运行,然后我可以选择通过状态通知告诉用户。我已经在这些地方搜索了解决方案,我找到了一些解决方案,但只是理论上的,我还没有通过实施来测试它们。下面提到:
- 集群节点服务器
- 使用工作线程
- 使用备用服务器并进行一些负载平衡。
- 使用消息队列并将其与工作线程耦合以执行后台任务。
有人可以在这种情况下给我一些久经考验的建议吗?还有一些与之相关的教程链接。