gpt4 book ai didi

javascript - node.js - cron.js 与 setInterval

转载 作者:数据小太阳 更新时间:2023-10-29 05:12:40 26 4
gpt4 key购买 nike

我需要每小时或每 30 分钟运行几个脚本,而且我还需要控制它们(重启、停止和启动)。我目前正在使用 cron.js,但是如果我使用 native setInterval,性能会有什么不同吗?而不是使用 cron.js?另外,我能否控制它们?

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

最佳答案

我强烈建议您使用操作系统的 native crontab(1) 程序。我曾经被 cron.js 的简单所吸引,只是很快意识到它在生产中不是很可靠。

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

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

此外,使用 cron.js 可以让您的定时脚本依赖于进程。当然,您可以使用 forever 无限期地保持进程,但如果它在作业执行前几秒钟崩溃,脚本很可能不会作为 运行>forever 重新启动。更不用说,如果机器重新启动,forever 进程将终止,除非计划使用 upstart(1) 启动时重新启动,或者具有讽刺意味的是,crontab(1 )

总结:

crontab(1) 是几十年来企业软件依赖的久经考验的程序。重新发明轮子没有意义 =)

如果像这样在每个脚本的顶部附加一个 SheBang:

#! /usr/bin/env node

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

关于javascript - node.js - cron.js 与 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21783506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com