在Node.js和Cron Job中设置间隔?

时间:2013-08-08 08:03:27

标签: node.js cron crontab

我正在学习node.js,只是设置一个空的Linux虚拟机并安装了节点。

我每分钟都在不停地运行一个功能

var request = require('request')
var minutes = 1, the_interval = minutes * 60 * 1000

setInterval(function() {
    // Run code
  })
}, the_interval);

考虑根据当前时间添加一些其他功能。 - (例如,如果dateTime =中午的星期日,则运行函数)

我的问题是,与传统的cron作业相比,运行这样的设置有什么不利之处吗?

请记住,我必须每分钟在节点中运行此功能。

2 个答案:

答案 0 :(得分:32)

  

我的问题是,与传统的cron作业相比,运行这样的设置有什么不利之处吗?

只要//run the code不是像加密这样受CPU限制的东西,坚持使用1节点进程,至少要开始。因为你需要request我猜你可能正在发出一个HTTP请求,这就是IO,这意味着没问题。

安装/启动/启动/停止/升级/连接调试器比处理应用服务器以及单独的cron管理进程更简单。对于它的价值,将其保存在javascript中使其可以跨平台移植,尽管这可能并不重要。

我还使用了一个方便的node-cron模块以及大约一亿个其他替代方案。

答案 1 :(得分:19)

这取决于您必须严格遵守该分钟间隔的程度,以及您的节点脚本在此期间是否正在执行任何其他操作。如果脚本执行的 only 事件是每X运行一次,我会强烈考虑让您的节点脚本改为X,并使用适当的操作系统调度程序来安排它。

如果你在节点中构建并运行它,你必须管理应用程序的生命周期并确保它正在运行,从崩溃中恢复等等。只需每分钟通过CRON执行一次就更简单了,在我看来更符合到Unix Philosophy