我发现不需要声明额外的TaskScheduler,我可以这样做:
<task:scheduled-tasks>
<task:scheduled ref="runScheduler1" method="run" cron="*/5 * * * * *" />
<task:scheduled ref="runScheduler2" method="run" cron="*/5 * * * * *" />
</task:scheduled-tasks>但是你能帮我解释一下吗,,为什么不需要它呢?
<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>发布于 2018-03-08 02:08:10
通用
<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文件中(如果您有多个上下文xmls)。您还可以为每个线程池设置单独的线程池(如上面的示例所示)。
只要你不想在两个任务之间有逻辑上的分离,并且你不想为每一个任务都有单独的头池,那么第一种方法应该适用于你。
https://stackoverflow.com/questions/49163486
复制相似问题