如何在Node.js中管理Cron作业

问题描述 投票:1回答:1

是否有任何node.js库允许您创建n个cron作业,提供某种键,然后可以通过键删除/编辑特定作业?

例如,我正在寻找这样的东西:

import cronManagerLibrary from 'library';

export const startJob = (key) => {
  cronManagerLibrary.addJob(key, '10 * * * * *', function);
}

export const removeJob = (key) => {
  cronManagerLibrary.removeJob(key);
}

export const updateJob = (key) => {
  cronManagerLibrary.updateJob(key, interval);
}

export const listJobs = () => {
  cronManagerLibrary.list();
}

更新:

我发现这个库cron-job-manager完全符合我的需要,但我不确定如何保留作业列表,因为我每次都需要创建一个作业管理器对象...

这就是我尝试过的:

import CronJobManager from 'cron-job-manager';

export startJob = (key) => {
  const manager = new CronJobManager();
  taskFunction = () => {
    console.log('CRON JOB RUNNING');
  }
  manager.add(key,'10 * * * * *', taskFunction);
  manager.start(key);
  console.log(manager);
}

每次我调用startJob函数来创建一个新的cron作业时,manager对象都不会保留以前启动的作业......有没有办法处理它?

node.js cron
1个回答
3
投票

您可以使用cron模块执行此操作。使用npm i cron安装cron。举个例子,

var CronJob = require('cron').CronJob;

new CronJob('* * * * * *', function () {
    console.log('You will see this message every second');
}, null, true, 'America/Los_Angeles');

有关详细信息,请参阅文档

如果你想做更多的cron活动,你总是可以使用任何终端命令。见下面的例子,

var exec = require('child_process').exec;

exec("crontab -l", function(err, stdout, stderr) {
    console.log(stdout);
});
© www.soinside.com 2019 - 2024. All rights reserved.