Synced-Cron, чтобы запустить один раз - Метеор
Я хочу запустить "запланированное задание" в метеоре, которое нужно запускать только один раз в указанное время. У меня есть доступ к объекту даты. я пробовал ниже cron
выражение, но не получил ожидаемого поведения.
вот фрагмент кода.
schedule: function(parser) {
var _year = bidStartTime.getFullYear();
var _month = bidStartTime.getMonth();
var _date = bidStartTime.getDate();
var _hours = bidStartTime.getHours();
var _min = bidStartTime.getMinutes();
var bidAsCron = _min+' '+_hours+' '+_date+' '+ _month+' ? '+_year;
console.log('parsed as ' + bidAsCron);
// parser is a later.parse object
// sample parser.cron('25 17 5 10 ? 2015');
// should 5th October 2015 at 5:25 pm
return parser.cron(bidAsCron);
},
1 ответ
Решение
С помощью synced-cron
версию 1.3.0 можно указать parser.recur().on(date).fullDate();
запланировать одноразовое (то есть не повторяющееся) событие, подобное этому:
SyncedCron.add({
name: cron_name,
schedule: function (parser) {
// ending_at is a Date object set to some future date
// there is no recurrence
return parser.recur().on(ending_at).fullDate();
},
job: function () {
// job code
}
});
рабочий пример: http://meteorpad.com/pad/mLfyoLnHSECPhQscz/synced-cron%20to%20run%20once