Я использую версию Hangfire "1.6.8". Я хочу создать повторяющуюся работу с Cron.Daily после определенного DateTime . Возможно ли создать повторяющееся задание с задержкой?
заранее спасибо
Я использую версию Hangfire "1.6.8". Я хочу создать повторяющуюся работу с Cron.Daily после определенного DateTime . Возможно ли создать повторяющееся задание с задержкой?
заранее спасибо
Я не могу придумать какой-либо особенно чистый способ сделать это.
Вы можете изучить возможность использования запланированного задания Hangfire для создания RecurringJob:
new BackgroundJobClient().Schedule(() => Hangfire.RecurringJob.AddOrUpdate(() => Console.WriteLine("Hello World"), Cron.Daily()), startDateTime)
Который может быть настроен на запуск запланированного задания незадолго до первого ожидаемого времени выполнения повторяющегося задания, и, таким образом, Hangfire запускает расписание и создает само задание. На самом деле я никогда не пытался это сделать, поэтому, пожалуйста, проверьте это (и дайте мне знать, как это работает).
Из документов HangFire можно использовать выражения CRON. Сначала их немного сложно подобрать, но как только вы освоитесь со структурой, вы сможете делать все, что ищете. Обратите внимание, что это точное время, и нет никакого «когда вам захочется после этого времени». Скажите ему, когда вы хотите, чтобы он работал.
Например, если вы хотите, чтобы он запускался каждый день в 14:00:
RecurringJob.AddOrUpdate(() => Console.Write("Powerful!"), "0 14 * * *");
14
: 14:00 (14:00)*
: каждый день месяца*
: Каждый месяц года*
: Каждый день недели.