次のようにスケジュールされたタスクがあります。
<task:scheduler id="notification.scheduler" pool-size="15" />
<task:scheduled-tasks scheduler="notification.scheduler">
<task:scheduled ref="notificationProcessor" method="sendNextQueueEvent" fixed-rate="500" />
<task:scheduled ref="notificationProcessor" method="deleteNextCompletedEvent" fixed-rate="60000" />
</task:scheduled-tasks>
スケジュールされたタスクがプール サイズでどのように機能するかを誤解していると思います。プールサイズは 15 ですが、使用されているスレッドは 1 つだけのようです。たとえば、キューに 15 個のイベントがある場合、キューからイベントを削除するために毎分チェックする 15 個のスレッドがあると思います。明らかに、これは間違っています。
Spring のスケジューラの抽象化を使用して、時間間隔でこのメソッドを呼び出す 15 のスレッドがあるようにするにはどうすればよいですか?
編集:私が達成したいのはこれです:0.5秒ごとに、送信するキューイベントがあるかどうかを確認したいと思います。これが完了したら、最大 15 個 (15 個存在する場合) を送信したいと考えています。Java スレッド用のスプリング抽象化を使用してこれを達成するにはどうすればよいですか?