spring-boot でバックエンドのサービスを開発しています。

以下の性質を持つバッチ群を作成したいと考えているのですが、spring 的に、どのような構成でバッチを作成するのが正しいのか、わからずにいます。

  • 各バッチは、 DataManager Bean (インスタンス) を共通して使いたい.
    (排他制御は DataManager が行う)
  • 各バッチは、それぞれ非同期実行してもかまわない
  • 各バッチは、それぞれに定められた周期で定期的に実行される。

自分でパッと考えつくのは、

  • 各バッチごとに、 XxxBatchManager を Bean で作成
  • 各 BatchManager は、バッチジョブを実行し、それが終わったら sleep(規定時間) を行う。これを繰り返す。

なのですが、もうちょっとうまい方法があるのではないか、と思い質問しています。