在设定的时间通过CRON运行Node JS应用程序,还是使用CRON运行24/7节点应用程序更为有效?
在设定的时间内通过CRON运行Node JS应用程序,还是利用Scheduler本身运行24/7节点应用程序更高效?
选项A:
- CRON每日处理作业 – 每天调用NodeJS应用程序
- 每周过程的CRON作业 – 每周调用NodeJS应用程序
- 优点是应用程序只在需要时运行。
- 缺点是开销和组织。 您需要为每个不同的操作分别制作项目/脚本。
选项B:
- 单独运行24/7的NodeJS应用程序。
- 称之为每天的日常操作,每周一次的操作等。
- 优点:一个包含所有CRON规则的项目 – 易于添加更多任务
- 缺点:项目必须全天候运行,不需要时更多的开销。
如果您只查看每天和每周的频率,那么我会去找一个叫做NodeJS应用的CRON工作。 如果这个任务在5分钟内运行,那么在那几分钟内你将只有CPU和RAM的利用率,而不是有一个完整的NodeJS应用程序呆在内存中,整天使用CPU资源(虽然很less)。
你不需要两个目录; 你只能有一个目录,你有一个daily.js工作文件和一个weekly.js文件。 或者你甚至可以有一个单一的文件(index.js),并用参数调用它来触发每日或每周的工作。 在你的index.js中,你需要读取process.argv数组来读取传入的参数。
index.js代码如下所示:
if (process.argv[2] == "D") { //code for daily task } else if (process.argv[2] == "W") { //code for weekly task } else { throw new Error("Invalid argument"); }
你的crontab文件看起来是这样的(例如每天凌晨3点运行日常工作,周一上午6点每周工作):
0 3 * * * node /path/index.js D 0 6 * * 1 node /path/index.js W