Synced-Cron, чтобы запустить один раз - Метеор

Я хочу запустить "запланированное задание" в метеоре, которое нужно запускать только один раз в указанное время. У меня есть доступ к объекту даты. я пробовал ниже cron выражение, но не получил ожидаемого поведения.

показывает следующий прогон @ 0

вот фрагмент кода.

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

Другие вопросы по тегам