在设定的时间通过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