Java バックエンド用のモニターを作成しており、さまざまなもの (メモリ、CPU、ユーザー アクティビティ、負荷など) をさまざまなタイミングで監視できるようにする必要があります。最も重要なことは、次の特性を持つように各モニター ( MemoryMonitorJob
、CpuMonitorJob
、など)を構成できる必要があることです。ActivityMonitorJob
- 定期的なサイクルでオン/オフします (15 分に 1 回など)。
- 電源がオンになった後、どれくらいの時間オンのままになるかを構成するには (たとえば、2 分)
- したがって、たとえば、
MemoryMonitorJob
を 15 分ごとに開始し、2 分間オンにしてからオフにするように構成したいと思いますが、その 2 分間の間隔が次の実行までの時間をオフセットすることはありません!
したがって、この特定の例では、モニターは次の動作を示します。
- t = 0、オンにする
- 0 < t < 2、実行
- t = 2、オフにする
- t = 15、オンにする
- 15 < t < 17、実行
- t = 17、オフにする
- t = 30、オンにする
- ...
明らかに、構成コードのどこかで、「間隔」が「期間/サイクル」時間に達していないか、超えていないことを確認する必要があります。
ここでの作業にはQuartz Schedulerが適切なツールだと思いますが、過去に単純な cron ジョブ (「 X を 15 分ごとに実行」)をセットアップするためにしか使用したことがありません。この間隔プロパティは私を悩ませています.QuartzCronTriggerImpl
ドキュメントを注意深く見た後、Quartzジョブをこのように動作するように設定する方法を理解できないようです.
理想的には、Quartz がこの種の動作を処理できる場合Job
、適切な期間/間隔設定で 1 つのモニター実装を構成し、それらをスケジューラーに追加するだけです。
クォーツはこれを処理できますか? もしそうなら、どのように(例を見ることができますか?!?)? そうでない場合、ここでのオプションは何ですか? 前もって感謝します!