2017-04-18 9 views
1

저는 Hangfire 버전 "1.6.8"을 사용하고 있습니다. 나는 특정 DateTime 이후에 Cron.Daily로 되풀이 작업을 만들고 싶다. 지연 시간이있는 반복되는 작업을 만들 수 있습니까? 사전지연 시간이있는 되풀이 작업

+1

Cron.Daily (time.Hours, time.Minutes);를 사용할 수 있습니다. - 특정 시간에 매일 일자리를 구하십시오. – Sergey

답변

1

에서

덕분에 나는이 일을 어떤 특히 깨끗한 방법을 생각할 수 없다.

당신은 RecurringJob 만드는 작업 예정 hangfire을 사용하는 길을 모색 할 수 : 설정 될 수

new BackgroundJobClient().Schedule(() => Hangfire.RecurringJob.AddOrUpdate(() => Console.WriteLine("Hello World"), Cron.Daily()), startDateTime) 

은 곧 반복 작업의 첫 번째 예상 실행 시간 이전에 예약 된 작업을 실행하기를, 따라서 hangfire는 일정을 실행하고 작업 자체를 만듭니다. 나는 실제로 이것을 시도한 적이 없으므로 시험 해보기 바란다.

+0

내 대답을 받아 들였습니다. 이것이 효과가 있다는 뜻입니까? 어떻게 된거야? 다음과 같은 사람을 위해 구체적인 구현 세부 정보가 있습니까? – MarkFl

+0

나는 그 예외를 얻고있다 : System.NotSupportedException : '익명 함수, 대리자 및 람다식이 작업 메서드 매개 변수에서 지원되지 않는다 : 일반적으로 모든 범위를 직렬화하는 것은 매우 어렵다.' –

1

HangFire docs에서 CRON expressions을 사용할 수 있습니다. 그들은 처음에는 픽업하기가 조금 힘들지만 일단 구조가 완성되면 찾고있는 모든 것을 할 수 있습니다. 참고로, 이것들은 정확한 번이며, "이 시간이 지나면 언제든지 기분이 좋을 때마다"없습니다. 그것을 실행하고 싶을 때 알려주십시오. 예를 들어

, 당신은 오후 2시 매일 실행하려면 :

RecurringJob.AddOrUpdate(() => Console.Write("Powerful!"), "0 14 * * *"); 
  • 0 : 0분
  • 14 : 오후 2시 (14:00 시간)
  • * : 모든 일
  • * : 매년의 매월
  • * : 매주 요일.