我正在学习node.js,只是设置一个空的Linux虚拟机并安装了节点。
我每分钟都在不停地运行一个功能
var request = require('request')
var minutes = 1, the_interval = minutes * 60 * 1000
setInterval(function() {
// Run code
})
}, the_interval);
考虑根据当前时间添加一些其他功能。 - (例如,如果dateTime =中午的星期日,则运行函数)
我的问题是,与传统的cron作业相比,运行这样的设置有什么不利之处吗?
请记住,我必须每分钟在节点中运行此功能。
答案 0 :(得分:32)
我的问题是,与传统的cron作业相比,运行这样的设置有什么不利之处吗?
只要//run the code
不是像加密这样受CPU限制的东西,坚持使用1节点进程,至少要开始。因为你需要request
我猜你可能正在发出一个HTTP请求,这就是IO,这意味着没问题。
安装/启动/启动/停止/升级/连接调试器比处理应用服务器以及单独的cron管理进程更简单。对于它的价值,将其保存在javascript中使其可以跨平台移植,尽管这可能并不重要。
我还使用了一个方便的node-cron模块以及大约一亿个其他替代方案。
答案 1 :(得分:19)
这取决于您必须严格遵守该分钟间隔的程度,以及您的节点脚本在此期间是否正在执行任何其他操作。如果脚本执行的 only 事件是每X运行一次,我会强烈考虑让您的节点脚本改为X,并使用适当的操作系统调度程序来安排它。
如果你在节点中构建并运行它,你必须管理应用程序的生命周期并确保它正在运行,从崩溃中恢复等等。只需每分钟通过CRON执行一次就更简单了,在我看来更符合到Unix Philosophy。