HangFire задерживает задание с датой

Как добавить дату в задачу HangFire? Например, этот код добавляет 7 дней:

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    TimeSpan.FromDays(7));

Но что, если мне нужно запустить задачу в определенную дату?

date,task,hangfire,

8

Ответов: 3


5 принят

Если год не имеет значения, вы можете использовать выражение cron для этой цели. Большинство стандартных реализаций cron (например, NCrontab, используемых Hangfire) не включают поле года.

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    "30 4 27 6 *");

Эта работа будет выполняться в 4:30 утра 27 июня каждого года.


4

Поскольку разработчик отвечает на мой вопрос здесь , вы можете просто использовать дату вместо дня (дней).

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    new DateTime(2015, 08, 05, 12, 00, 00));

На 05/08/2015 в 00:00.

Ответ Джерри верен для RecurringJobs

RecurringJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    "00 00 05 8 *");

который будет запускаться каждый год 05/08 в 00:00


0

Используйте его Cron.Yearly()для запуска один раз в год в определенные даты:

// Will run on 4th of July @ 8 AM UTC every year
BackgroundJob.Schedule(
    () => Console.WriteLine("Happy 4th of July!"), 
    Cron.Yearly(7, 4, 8, 0));
дата, задачи, замедленное воспламенение,
Похожие вопросы
Яндекс.Метрика