欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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