저는 Hangfire 버전 "1.6.8"을 사용하고 있습니다. 나는 특정 DateTime 이후에 Cron.Daily로 되풀이 작업을 만들고 싶다. 지연 시간이있는 반복되는 작업을 만들 수 있습니까? 사전지연 시간이있는 되풀이 작업
답변
에서
덕분에 나는이 일을 어떤 특히 깨끗한 방법을 생각할 수 없다.
당신은 RecurringJob 만드는 작업 예정 hangfire을 사용하는 길을 모색 할 수 : 설정 될 수
new BackgroundJobClient().Schedule(() => Hangfire.RecurringJob.AddOrUpdate(() => Console.WriteLine("Hello World"), Cron.Daily()), startDateTime)
은 곧 반복 작업의 첫 번째 예상 실행 시간 이전에 예약 된 작업을 실행하기를, 따라서 hangfire는 일정을 실행하고 작업 자체를 만듭니다. 나는 실제로 이것을 시도한 적이 없으므로 시험 해보기 바란다.
내 대답을 받아 들였습니다. 이것이 효과가 있다는 뜻입니까? 어떻게 된거야? 다음과 같은 사람을 위해 구체적인 구현 세부 정보가 있습니까? – MarkFl
나는 그 예외를 얻고있다 : System.NotSupportedException : '익명 함수, 대리자 및 람다식이 작업 메서드 매개 변수에서 지원되지 않는다 : 일반적으로 모든 범위를 직렬화하는 것은 매우 어렵다.' –
HangFire docs에서 CRON expressions을 사용할 수 있습니다. 그들은 처음에는 픽업하기가 조금 힘들지만 일단 구조가 완성되면 찾고있는 모든 것을 할 수 있습니다. 참고로, 이것들은 정확한 번이며, "이 시간이 지나면 언제든지 기분이 좋을 때마다"없습니다. 그것을 실행하고 싶을 때 알려주십시오. 예를 들어
, 당신은 오후 2시 매일 실행하려면 :
RecurringJob.AddOrUpdate(() => Console.Write("Powerful!"), "0 14 * * *");
0
: 0분14
: 오후 2시 (14:00 시간)*
: 모든 일*
: 매년의 매월*
: 매주 요일.
Cron.Daily (time.Hours, time.Minutes);를 사용할 수 있습니다. - 특정 시간에 매일 일자리를 구하십시오. – Sergey