我试图实现以后安排任务的能力。我希望行为是,当我安排任务时,如果没有空闲线程,它会将其放入队列中。对我来说,情况似乎并非如此。
我有一个实现Runnable的java bean,我安排任务在下午5点运行,但是如果我安排另一个任务在下午5点运行,它就不会运行,只有第一个任务会运行。有没有办法让这些任务排队并在下午5点一个接一个地运行?
由于
这就是我的threadPoolTaskScheduler的设置方式:
<bean id="threadPoolTaskScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
<property name="poolSize" value="5" />
</bean>
我的代码。我的服务层调用runTask(),而runTask()又由我的ui层调用。
public class MySchedulerForTask {
@Autowired
private ThreadPoolTaskScheduler threadPoolTaskScheduler
public void runTask() {
threadPoolTaskScheduler.schedule(new MyTask(), atFive())
}
private Date atFive() {
Calendar cal = Calendar.getInstance();
cal.set(HOUR_OF_DAY, 17);
cal.set(MINUTE, 0);
cal.set(SECOND, 0);
return cal.getTime();
}
public class MyTask implements Runnable {
public void run() {
//Calls my DAO to update stuff.
}
}
}