2017-04-18 5 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:2PM(14:00)
  • *:すべて月曜日
  • *:毎月毎年
  • *:毎週の曜日。
関連する問題