gpt4 book ai didi

javascript - 我如何在将来的某个日期时间使用 Nodejs 中的 Agenda 运行类似 cron 的作业

转载 作者:行者123 更新时间:2023-11-30 15:38:00 25 4
gpt4 key购买 nike

我这里有个问题。我如何像 Node 调度程序一样使用议程在将来的某个日期时间运行作业。基于https://www.npmjs.com/package/node-schedule , node-schedule 有cron风格的调度方法。所以我更容易从我的输入中提取日期。我已阅读议程文档 https://github.com/rschmukler/agenda#agenda-events ,它说 Agenda 使用 Human Interval 来指定间隔。

Cron

我该怎么做?

最佳答案

如果你有一个 future 的日期,你可以将它转换为从今天开始的天数或者下面的秒数,然后使用相同的议程 计划任务

function findDaysDifference ( date1, date2 ) {
//Get 1 day in milliseconds
var oneDay_ms = 1000 * 60 * 60 * 24;

// Convert both dates to milliseconds
var date1_ms = date1.getTime();
var date2_ms = date2.getTime();

// Calculate the difference in milliseconds
var difference_ms = date2_ms - date1_ms;

// Convert back to days and return
return Math.round(difference_ms/oneDay_ms);
}

var futureDate = new Date(2018, 0, 1);
var daysFromNow = findDaysDifference(new Date(), futureDate);

console.log(daysFromNow);

然后创建agenda 作业并使用上面计算的daysFromNow 安排它,

agenda.define('sayHello', function(job) {
console.log("Hello!");
});

// Schedule a job to run once at a given time
agenda.schedule(daysFromNow + ' days', 'sayHello');

如果你想在未来的特定时间安排它,你可以计算秒数如下,

function findSecondsDifference ( date1, date2 ) { 
var oneSecond_ms = 1000;

// Convert both dates to milliseconds
var date1_ms = date1.getTime();
var date2_ms = date2.getTime();

// Calculate the difference in milliseconds
var difference_ms = date2_ms - date1_ms;

// Convert back to days and return
return Math.round(difference_ms/oneSecond_ms);
}

var futureDate = new Date(2018, 0, 1, 16);
var secsFromNow = findSecondsDifference(new Date(), futureDate);

console.log(secsFromNow);

然后创建agenda 作业并使用上面计算的secsFromNow 安排它,

agenda.define('sayHello', function(job) {
console.log("Hello!");
});

// Schedule a job to run once at a given time
agenda.schedule(secsFromNow + ' seconds', 'sayHello');

关于javascript - 我如何在将来的某个日期时间使用 Nodejs 中的 Agenda 运行类似 cron 的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41226352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com