web-dev-qa-db-ja.com

Hangfireで8日ごとに定期的なジョブを実行する

Hangfireで、所定の日数、たとえば8日後に実行される定期的なジョブを作成することは可能ですか?.

私が見つけた最も近いものは、週に一度ジョブを実行することでした-

RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), Cron.Weekly());

Hangfireは標準のCronExpressionも受け入れることを理解し、この頻度のcron式を探そうとしましたが、その頻度を見つけることができませんでした- https://en.wikipedia.org/wiki/Cron

醜い解決策の1つは、月に一度、特定の日付に実行される3つまたは4つのジョブを作成することですが、私はそれをしたくありません。

何か提案してください。

13
Yogi

最後に、このようにCronExpressionを使用して、8日おきまたは何日でも繰り返しジョブをスケジュールしました。

string cronExp = "* * */8 * *";
RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), cronExp);

CronExpressionの3番目のセグメントは、月の日を表します。

それぞれのセグメントは次のとおりです 参照:---(https://en.wikipedia.org/wiki/Cron

enter image description here

22
Yogi

よりクリーンなソリューションはCron.DayInterval(interval)を使用することです。

あなたの場合、それは

RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), Cron.DayInterval(8));
8
Athul Dilip