Spring 定时任务task:scheduler

  • 2022-07-15 16:10:11

楔子

spring的定时任务的学习

测试task:scheduler 参数

spring定时任务
<task:scheduled-tasks >
<task:scheduled ref="demoQua" method="name" cron="1/1 * * * * ? " />
<task:scheduled ref="demoQua" method="second" cron="1/2 * * * * ? " />
</task:scheduled-tasks>

按照上面的配置时,是按照配置的顺序执行的。如果任务1耗时长,那么任务2只能等待。

    <task:scheduler id="schedul" pool-size="2"/>
    <task:scheduled-tasks scheduler="schedul">
        <task:scheduled ref="demoQua" method="name" cron="1/1 * * * * ? " />
        <task:scheduled ref="demoQua" method="second" cron="1/2 * * * * ? " />
    </task:scheduled-tasks>

使用task:scheduler 时 pool-size:调度线程池的大小 。任务会同时开始
Spring 定时任务task:scheduler
上面使用了打印信息做测试,其中任务1中加入延时。

    <context:component-scan base-package="cn.zhuzi.cron" />
    <bean id="demoQuas" class="cn.zhuzi.cron.CronDemo" />

    <task:scheduler id="schedul" pool-size="2"/>
    <task:scheduled-tasks scheduler="schedul">
        <task:scheduled ref="demoQua" method="name" cron="1/1 * * * * ? " />
        <task:scheduled ref="demoQua" method="second" cron="1/2 * * * * ? " />
    </task:scheduled-tasks>
@Component("demoQua")
public class CronDemo {
    public void name() {
        System.out.println("11111>");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

    public void second() {
        System.out.println("22222 ");
        System.out.println("--------------------");

    }
}

参考 https://blog.csdn.net/weixin_37848710/article/details/79635021

猜你喜欢