如何在Node.js中管理Cron作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Node.js中管理Cron作业相关的知识,希望对你有一定的参考价值。
是否有任何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
对象都不会保留以前启动的作业......有没有办法处理它?
答案
您可以使用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);
});
以上是关于如何在Node.js中管理Cron作业的主要内容,如果未能解决你的问题,请参考以下文章
如何让运行 Node.js 脚本的 cron 作业从 .env 文件中读取变量?
运行 cron 作业 (Node.js) 时如何在 Amazon Elastic Beanstalk 中设置环境变量?