我有一个任务安排如下:
<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,但似乎只使用了一个线程。例如,如果队列中有 15 个事件,我会认为每分钟会有 15 个线程检查以从队列中删除一个事件。显然,这是错误的。
如何使用 Spring 的调度程序抽象在时间间隔内有 15 个线程调用此方法?
编辑:我想要完成的是:每半秒,我想检查一下是否有排队的事件要发送。完成后,我想发送最多 15 个(如果存在 15 个)。我将如何使用 java 线程的 spring 抽象来实现这一点?