我正在使用 spring 3 调度和线程池框架。我想在不同的时间/间隔安排不同的任务。我希望每个任务在另一个任务开始之前运行完成。
IE 如果我有 task1 和 task2:task1 每 10 分钟运行一次,运行时间为 1 分钟 task2 每天运行一次,运行时间为 5 分钟。
如果 task1 和 task2 计时器同时触发,我希望将 task1 和 task2 放在一个队列中,并且一次只取消一个任务。
我知道我可以使用 Spring ThreadPoolTaskExecutor 进行设置,即
<task:executor id="executorWithPoolSizeRange"
pool-size="5-10"
queue-capacity="1"/>
但是我不确定如何将该执行程序挂接到调度程序中。使用 Spring ThreadPoolTaskScheduler 时,您只能设置 poolSize 而不是 queueSize
<task:scheduler id="scheduler" pool-size="10"/>
有谁知道我如何能够一起使用 Spring 执行器和调度程序服务来实现我的目标?