我仍然是NodeJS的新手,想知道我是否以错误的方式看待它。
背景: 我正在创建一个每周运行一次的应用程序,生成一个报告,然后通过电子邮件将其发送给收件人列表。我使用Node的最初原因是因为我已经使用angular构建了现有的前端,我希望能够重用代码以简化维护。我的主要想法是在我们的服务器上并行运行4个以上的单个节点应用程序。
第一个应用程序将使用node-cron以便每周日运行。这将检查数据库中是否有所有计划任务,并检索正在运行的报告的存储参数。
下一个应用程序是一个简单的队列,用于存储计划任务并将其传递给工作人员任务。
实际的pdf生成会有点CPU密集,因此这将是一个n个应用程序集群,可以从队列中检索和运行单个报告。
完成制作pdf后,他们会转到最终发送文件的电子邮件应用程序。
我主要关心的是应用之间的沟通。目前,我正在使用express在不同的端口上设置3个较低级别(即除调度程序之外的所有级别),并在需要时向它们打开http请求。有没有更好的方法来处理这个?基本的' net'比#' http'包?对于像这样的东西,Express是否必要,或者我最好将所有东西作为基本的http / net服务器运行?到目前为止,我对Express所做的唯一真正用途是专门监听put请求的路径并解析传入的json。我被引导在这里询问,因为在跟踪日志到目前为止,我经常看到http请求被重置,这似乎不会影响子进程收到的数据,但我仍然希望避免编码中的错误
答案 0 :(得分:1)
我认为他的那种解耦可以利用某种状态优先级队列,其功能包括重试失败,聚类等......
我过去使用Kue.js非常成功,它支持redis,并且有很好的文档和界面http://automattic.github.io/kue/