公共调度
<task:scheduled-tasks>
<task:scheduled ref="runScheduler1" method="run" cron="*/5 * * * * *" />
<task:scheduled ref="runScheduler2" method="run" cron="*/5 * * * * *" />
</task:scheduled-tasks>
本部分定义了一个
scheduler
其中包含两项任务。这两项任务将彼此独立执行(根据其定义的时间表)。
有一个
scheuler
如果有多个任务,它不仅可以将它们分组在一起,还可以让您控制两个任务共用的线程池。
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="runScheduler1" method="run" fixed-rate="5000" />
<task:scheduled ref="runScheduler2" method="run" fixed-delay="500" />
</task:scheduled-tasks>
<task:scheduler id="myScheduler" pool-size="5"/>
以上使用一个
调度程序
并且还告诉我,在我的计划中有两个任务具有它们自己预定义的固定延迟。两个任务和/或一个任务的两个事件可能相互重叠。
在这种情况下,这些将在大小为5的线程池下并发运行。
单独的计划程序
<task:scheduled-tasks>
<task:scheduled ref="runScheduler1" method="run" cron="*/5 * * * * *" />
</task:scheduled-tasks>
<task:scheduled-tasks>
<task:scheduled ref="runScheduler2" method="run" cron="*/5 * * * * *" />
</task:scheduled-tasks>
然而,在本例中,有两个单独的
schedulers
每个任务中有一个任务。
您可以放置不同的
调度程序
到不同的上下文xml文件(如果您有多个上下文xml)。
您还可以为每个线程池都提供单独的线程池(如上面的示例所示)。
只要您不想在两个任务之间进行逻辑上的分离,也不想为每个任务都有单独的thead池,那么第一种方法应该适合您。