2017-05-03 3 views
0

私は、更新タスクをプログラムするためにHangfireを使用したいと思っています。私はこのタスクが毎回実行されることを願っています。だからタスクが終了したらもう一度それを実行したい。無限のタスクのためのRecurringJobまたはBackgroundJob +ループ

私は、使用する最良の方法がRecurringJobか、それにループとBackgroundJobを使用するかどうか分かりません。

私に何をお勧めしますか?他のオプションはありますか?

答えて

0

あなたの要件に基づいて(CRON式を設定できる)x分またはx時間ごとにトリガするRecurringJobを使用できます。これにより、そのような間隔ごとにタスク/作業がトリガされます。これは、DisableConcurrentExecution属性と組み合わせて使用​​する必要があるため、同じタスクの複数のインスタンスがトリガーされないようにする必要があります。この属性でも、最初のインスタンスが完全であれば、2番目のインスタンスのみが処理されます。

また、BackGroundJobを使用してタスク/ジョブをエンキューできますが、これはジョブの処理を1回だけ行います。したがって、このジョブのステータスをチェックし、最初のジョブが完了したら同じジョブを再度エンキューするコードを書く必要があります。このアプローチでは、それを行うためのコードを書く必要があります。

RecurringJob.AddOrUpdateをDisableConcurrentExecutionと組み合わせて使用​​することをお勧めします。

関連する問題