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

标签 node.js cron

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

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

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 - 如何在 Node.js 中管理 Cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072418/

相关文章:

node.js - 如何从 Firebase 函数中的 TIMESTAMP 获取字符串和日期对象?

node.js - 实时缩小 Nodejs 模板

ant - "fork: Resource temporarily unavailable"是什么原因

java - 跨多个操作系统删除一个文件

linux - Bash 脚本不会在 Centos 8 中作为 cron.hourly 作业运行

php - 在没有cron的情况下运行php脚本来进行自动数据库备份

linux - 从 cron 使用 GUI 启动 Octave

javascript - 如何更新 MongoDB 中整个数据库的特定属性?

node.js - 无法检索 setupIntent,因为 stripe.paymentIntents 未定义

node.js - 连接表中仅创建了列