node.js - 寻找一个在作业仍在运行时不会启动的 Node.js 调度程序

标签 node.js scheduled-tasks scheduler scheduling job-scheduling

我正在寻找一个用于nodejs的schedular/cron。 但我需要一个重要的功能 - 如果作业没有完成(当它再次开始的时间到来时),我希望它不开始/延迟时间表。 例如,我需要每 5 分钟运行一次作业。该工作于8:00开始,但仅在8:06完成。所以我希望8:05的作业要么等到8:06,要么根本不开始,等待8:10的下一个周期。 有一个包可以做到这一点吗?如果没有,实现此目的的最佳方法是什么?

最佳答案

您可以使用cron包裹。它允许您手动启动/停止 cronjob。这意味着您可以在 cronjob 完成后调用这些函数。

const CronJob = require('cron').CronJob;
let job;

// The function you are running
const someFunction = () => {
    job.stop();

    doSomething(() => {
        // When you are done
        job.start();
    })
};

// Create new cronjob
job = new CronJob({
    cronTime: '00 00 1 * * *',
    onTick: someFunction,
    start: false,
    timeZone: 'America/Los_Angeles'
});

// Auto start your cronjob
job.start();

关于node.js - 寻找一个在作业仍在运行时不会启动的 Node.js 调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44690903/

相关文章:

javascript - Angular js RouteProvider 中的问题

node.js - 是否可以在 Express.js 中命名路由

javascript - 每日特定时间nodejs触发函数

c# - 使用 C# TaskScheduler 库创建的 .job 文件在 Windows 7 中是否已过时?

java - quartz 调度

node.js - Async forEachOfLimit 函数不限制集合的迭代

javascript - 如果 s3 中不存在项目,AWS SDK 会使 Node 应用程序崩溃

android - 如何真正准确地每分钟更新一个小部件

c - 我需要让 Round Robin 工作,但它不能正常工作

c - 图形着色算法 - 指定颜色