【问题标题】:The right way to use worker threads in Nest.js app在 Nest.js 应用程序中使用工作线程的正确方法
【发布时间】:2022-03-02 21:58:08
【问题描述】:

我正在创建一个 Nest.js 应用程序,并希望处理该应用程序的可扩展性。我发现基本上有两种扩展方式:集群或工作线程。我已经在这里“https://stackoverflow.com/questions/64340922/docker-vs-cluster-with-node-js”询问了有关node.js应用程序可扩展性的问题。并发现最好用 docker 包装应用程序并从中创建克隆,而不是集群。所以,我已经用 Nest.js 应用程序做到了,但问题是我们如何使用 Nest.js 中的工作线程来处理 CPU 密集型任务?我们应该只导入工作线程并使用它,还是 Nest.js 中有特殊语法允许我们使用工作线程?

【问题讨论】:

    标签: node.js nestjs


    【解决方案1】:

    队列

    队列是一种强大的设计模式,可帮助您应对常见的应用程序扩展和性能挑战。

    分解可能会阻塞 Node.js 事件循环的单一任务。例如,如果用户请求需要像音频转码这样的 CPU 密集型工作,您可以将此任务委派给其他进程,从而释放面向用户的进程以保持响应。

    Go to official document...

    【讨论】:

      【解决方案2】:

      NestJS 是一个 NodeJS 框架,依赖注入是它的主要吸引力。话虽如此,基于类的架构通常是最好的方法。现在,您绝对没有理由不能只导入模块(类似于在 Node/Typescript 中的方式)并使用该库。没有必要的特殊语法,除非您决定创建 Dynamic Module,这可能没有必要。

      【讨论】:

        猜你喜欢
        • 2015-09-29
        • 2016-11-06
        • 2013-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多