スケジューラ タスク (または独自のカスタム クロック プロセス) でインターバル タスクをスケジュールし、実行しないことは、アーキテクチャ上のベスト プラクティスです。これの動機は、スケジュールされたジョブの記事で説明されていますが、要約すると、スケジューラーのプロセス/タスクは 1 つしか存在しないため、可能な限り軽量にする必要があります。スケジュールを実行で過負荷にし始めると、スケジュールの競合や不安定な動作に遭遇することがよくあります。
1 つのインターバル ジョブがハングするか、予想よりもはるかに長い時間がかかるとします。間隔が十分に狭い場合、これによりバックログが発生し始め、将来の間隔が延期またはスキップされる可能性があります.
また、コンポーネントの責任をできるだけ分離しておくのが賢明です。単一のコンポーネントが直交するタスクを担当するのではありません。これは、スケジューリングと実行を独立させることで、スケジュールされたジョブのユースケースに反映される一般的な設計手法です。
ベスト プラクティスはさておき、開発モードまたはブートストラップ モードで上記の結果を理解している場合は、そのようなアドバイスを無視してスケジューラ タスク内ですべてを実行することを選択できます。ジョブの競合や明らかな重複をデバッグするのが難しい場合は注意してください。