Dav*_*vid 6 javascript node.js npm
我需要每小时或每30分钟运行几个脚本,我还需要控制它们(重启,停止和启动).我目前正在使用cron.js,但是如果我使用本机setInterval会有任何性能差异吗?而不是使用cron.js?另外,我能控制它们吗?
小脚本可以同时运行数百个,它们修改mongodb数据库上的数据.
我强烈建议使用您的操作系统的本机crontab(1)程序.我曾经被简单化了,cron.js只是为了很快意识到它在生产中不是很可靠.
如果我使用本机setInterval有任何性能差异?
确实是的.由于Javascript运行时的性质,setInterval()不准确,最终会与操作系统的时钟不同步.cron.js使用setInterval()在幕后,但是,他们增加心跳监视器调整间隔和CPU的时钟利用Date对象发现之间的增量.如果脚本运行的准确性至关重要,那么这两种方法都不应该被认为是可靠的.
此外,使用cron.js使您的定时脚本依赖于该过程.当然,您可以使用forever无限期地保持进程,但如果在执行作业之前几秒钟发生崩溃,则脚本很可能不会作为forever重新启动运行.更不用说,如果机器重新启动,forever除非计划在启动时重启,否则进程将会死亡upstart(1),具有讽刺意味的是crontab(1).
crontab(1)几十年来,它是企业软件所依赖的战斗测试程序.重新发明车轮没有意义=)
如果你在每个脚本的顶部追加一个SheBang,如下所示:
#! /usr/bin/env node
Run Code Online (Sandbox Code Playgroud)
并将文件设置为可执行文件,您可以crontab(1)像任何旧的Bash脚本一样注册脚本.