计算SQL中CRON表达式的下一个运行时间

时间:2016-02-02 16:04:02

标签: sql sql-server sql-server-2008 cron

我在我的网站上使用CRON UI为某些用户任务创建重新安排的时间表。 UI生成CRON格式,存储在数据库中,我正在寻找一种方法来获取Next运行时间以了解任务是否到期并相应地执行。有没有办法可以转换CRON格式以获得SQL中的下一个运行时间?

:=

表格

0 9 1-7 * 1 *                       First Monday of each month, at 9 a.m.
0 0 1 * * *                         At midnight, on the first day of each month
* 0-11 * * *                        Each minute before midday

SQL

JobID, CRONSchedule
1  0 9 1-7 * 1 *
2  0 0 1 * * * 
3  * 0-11 * * * 

1 个答案:

答案 0 :(得分:0)

您可以从" cron-converter"库。

安装:

npm install cron-converter --save
bower install cron-converter --save

用法:

var Cron = require('cron-converter');
var cronInstance = new Cron();
cronInstance.fromString(<your_schedule>);
var schedule = cronInstance.schedule(); --today's date

var schedule = cronInstance.schedule();

//Optional - denife a specific date
var reference = new Date(2013, 2, 8, 9, 32);
reference = moment([2013, 2, 8, 9, 32]);
schedule = cronInstance.schedule(reference);

console.log(schedule.next().format()); //returns next schedule date

参考:https://www.npmjs.com/package/cron-converter

此外,还有一个名为&#34; cronviz&#34;在下面的链接中共享可以为您提供计划的未来任务的图形视觉。

https://github.com/federatedmedia/cronviz

有一个shell脚本会返回相关时间的计划任务,您可以在下面找到:

https://unix.stackexchange.com/questions/175828/get-chronological-list-of-dates-times-for-scheduled-tasks-in-cron

此链接中提到了其他用法:

Calculate when a cron job will be executed then next time