Mean.js Node.js 后台进程
Mean.js Node.js background processes
我有一个正在编写的 mean.js 应用程序,但我在概念上对后台进程感到困惑。
我需要一些进程 运行 在后台持续运行 mongodb 数据库并执行清理、电子邮件、推文等操作
我需要许多与我的 Web 应用程序中相同的功能和库可用于这些后台进程。
最好的方法是什么?我是否从一个全新的源代码库开始并将这些 worker proc 视为一个单独的应用程序?或者当我用 g运行t 启动 server.js 时,创建一个守护程序文件夹并分叉后台进程?
我想我把自己弄糊涂了,可能让事情变得比它应该的更复杂。我查看了节点守护程序以及 child_processes 和 simple_daemon。但我不确定该走哪条路。
感谢您的帮助。
您可以在 mean.js 应用程序中使用 setInterval() 运行 计划任务或重复任务。由于 node.js 的工作方式,只要节点正在 运行 连接您的应用程序,任何在 setInterval() 或 setTimeout() 中定义为 运行 的回调将 运行 一旦加载.这意味着您可以将后台逻辑保留在 controllers/models 或相邻文件中。您可以包含您的后台脚本,例如require() - 从主 app.js 文件,或从你的控制器、模型等的任何地方
例如
app.js:
require('tasks/doStuff');
require('express');
/* express/app stuff here */
tasks/doStuff.js:
require('mongoose');
require('some/other/stuff');
setInterval( function() {
console.log('interval happened');
}, 1000);
这种方法确实需要一些 design/architectural 考虑。即,您的任务现在与节点 mean.js 应用程序的成功执行相关联。如果您的 mean.js 应用 crashes/dies,您的任务也将终止。
我有一个正在编写的 mean.js 应用程序,但我在概念上对后台进程感到困惑。
我需要一些进程 运行 在后台持续运行 mongodb 数据库并执行清理、电子邮件、推文等操作
我需要许多与我的 Web 应用程序中相同的功能和库可用于这些后台进程。
最好的方法是什么?我是否从一个全新的源代码库开始并将这些 worker proc 视为一个单独的应用程序?或者当我用 g运行t 启动 server.js 时,创建一个守护程序文件夹并分叉后台进程?
我想我把自己弄糊涂了,可能让事情变得比它应该的更复杂。我查看了节点守护程序以及 child_processes 和 simple_daemon。但我不确定该走哪条路。
感谢您的帮助。
您可以在 mean.js 应用程序中使用 setInterval() 运行 计划任务或重复任务。由于 node.js 的工作方式,只要节点正在 运行 连接您的应用程序,任何在 setInterval() 或 setTimeout() 中定义为 运行 的回调将 运行 一旦加载.这意味着您可以将后台逻辑保留在 controllers/models 或相邻文件中。您可以包含您的后台脚本,例如require() - 从主 app.js 文件,或从你的控制器、模型等的任何地方
例如
app.js:
require('tasks/doStuff');
require('express');
/* express/app stuff here */
tasks/doStuff.js:
require('mongoose');
require('some/other/stuff');
setInterval( function() {
console.log('interval happened');
}, 1000);
这种方法确实需要一些 design/architectural 考虑。即,您的任务现在与节点 mean.js 应用程序的成功执行相关联。如果您的 mean.js 应用 crashes/dies,您的任务也将终止。