Spring的任务调度程序如何工作?

时间:2014-08-27 23:53:52

标签: java spring

我试图实现以后安排任务的能力。我希望行为是,当我安排任务时,如果没有空闲线程,它会将其放入队列中。对我来说,情况似乎并非如此。

我有一个实现Runnable的java bean,我安排任务在下午5点运行,但是如果我安排另一个任务在下午5点运行,它就不会运行,只有第一个任务会运行。有没有办法让这些任务排队并在下午5点一个接一个地运行?

由于

这就是我的threadPoolTask​​Scheduler的设置方式:

<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.
        }
    }

}

0 个答案:

没有答案