私は、更新タスクをプログラムするためにHangfireを使用したいと思っています。私はこのタスクが毎回実行されることを願っています。だからタスクが終了したらもう一度それを実行したい。無限のタスクのためのRecurringJobまたはBackgroundJob +ループ
私は、使用する最良の方法がRecurringJobか、それにループとBackgroundJobを使用するかどうか分かりません。
私に何をお勧めしますか?他のオプションはありますか?
私は、更新タスクをプログラムするためにHangfireを使用したいと思っています。私はこのタスクが毎回実行されることを願っています。だからタスクが終了したらもう一度それを実行したい。無限のタスクのためのRecurringJobまたはBackgroundJob +ループ
私は、使用する最良の方法がRecurringJobか、それにループとBackgroundJobを使用するかどうか分かりません。
私に何をお勧めしますか?他のオプションはありますか?
あなたの要件に基づいて(CRON式を設定できる)x分またはx時間ごとにトリガするRecurringJobを使用できます。これにより、そのような間隔ごとにタスク/作業がトリガされます。これは、DisableConcurrentExecution属性と組み合わせて使用する必要があるため、同じタスクの複数のインスタンスがトリガーされないようにする必要があります。この属性でも、最初のインスタンスが完全であれば、2番目のインスタンスのみが処理されます。
また、BackGroundJobを使用してタスク/ジョブをエンキューできますが、これはジョブの処理を1回だけ行います。したがって、このジョブのステータスをチェックし、最初のジョブが完了したら同じジョブを再度エンキューするコードを書く必要があります。このアプローチでは、それを行うためのコードを書く必要があります。
RecurringJob.AddOrUpdateをDisableConcurrentExecutionと組み合わせて使用することをお勧めします。