2016-02-02 2 views
3

Я использую CRON UI на своем веб-сайте, чтобы создать повторное расписание для некоторых задач пользователей. Пользовательский интерфейс генерирует CRON-формат, который хранится в базе данных, и я ищу способ получить следующее время выполнения, чтобы узнать, должна ли выполняться задача и выполнить ее соответствующим образом. Есть ли способ, которым я могу преобразовать формат CRON, чтобы получить следующее время выполнения в SQL?Вычислить следующее время выполнения выражения 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 

ТАБЛИЦА

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

SQL

Select JobID, CRONSchedule, NextRunTime from TABLE 
+0

Возможно, эта ссылка может помочь: http://stackoverflow.co m/questions/16691745/date-time-format-in-unix-crontab – Chuck

+0

Нет, это был формат даты. Здесь я ищу функцию для преобразования даты и сравнения с getdate(), чтобы найти следующее время выполнения –

ответ

0

Вы можете воспользоваться "хрон-конвертерного" библиотеки.

Установка:

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 

Ref: https://www.npmjs.com/package/cron-converter

Кроме того, инструмент под названием "cronviz" совместно в ссылке ниже, может предоставить вам графическое визуальное из запланированные будущие задачи.

https://github.com/federatedmedia/cronviz

Существует скрипт оболочки возвращения вам запланированные задачи со связанными раз, вы можете найти ниже:

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

Смежные вопросы