通用时间表
<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"/>
上面使用了一个scheduler
并且还告诉我的计划中有两个任务具有自己的预定义固定延迟。两个任务和/或单个任务的两次出现可能相互重叠。在这种情况下,它们将在大小为 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
的,每个中有一个任务。您可以放置不同schedulers
的上下文 xml 文件(如果您有多个上下文 xml)。您还可以为每个线程池设置单独的线程池(如上例所示)。
只要您不想在两个任务之间进行逻辑分离,并且您不想为每个任务设置单独的 thead-pools,那么第一种方法应该适合您。