javascript – node.js – cron.js vs setInterval

前端之家收集整理的这篇文章主要介绍了javascript – node.js – cron.js vs setInterval前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要每小时或每30分钟运行几个脚本,我还需要控制它们(重启,停止和启动).我目前正在使用cron.js,但是如果我使用本机setInterval会有任何性能差异吗?而不是使用cron.js?另外,我能控制它们吗?

小脚本可以同时运行数百个,它们修改mongodb数据库上的数据.

解决方法

我强烈建议使用您的操作系统的本机crontab(1)程序.我曾经沉浸在cron.js的简单性中,只是为了很快意识到它在生产中不是很可靠.

is there any performance difference if I use the native setInterval?

确实是的.由于Javascript运行时的性质,setInterval()不准确,最终会与操作系统的时钟不同步. cron.js使用了setInterval(),但是,他们添加了一个心跳监视器来调整间隔和使用Date对象找到的cpu时钟之间的增量.如果脚本运行的准确性至关重要,那么这两种方法都不应该被认为是可靠的.

此外,使用cron.js会使您的定时脚本依赖于该过程.当然,你可以永久地使用它来无限期地保持进程,但是如果它在执行作业之前几秒钟发生崩溃,那么脚本很可能不会像永远重启一样运行.更不用说,如果机器重新启动,永远的进程将会死亡,除非计划在使用upstart(1)启动时重新启动,或者具有讽刺意味的是,crontab(1).

摘要

crontab(1)是企业软件依赖数十年的战斗测试程序.重新发明车轮没有意义=)

如果你在每个脚本的顶部追加一个SheBang,如下所示:

#! /usr/bin/env node

并将文件设置为可执行文件,您可以像任何旧的Bash脚本一样使用crontab(1)注册脚本.

猜你在找的JavaScript相关文章