springBoot 定时器

程序入口类中加入注解

@EnableScheduling

配置定时任务为并行

@Slf4j
@Configuration
public class ScheduledConfig implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
        scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
    }
}//end

编写定时器类

@Component
@Slf4j
public class timerController {
    private int fixedDelayCount = 1;
    private int fixedDelayCount1 = 1;

    @Scheduled(fixedDelay = 5000)        
    public void testFixDelay() throws InterruptedException {
        Thread.sleep(5000);
        log.info("===fixedDelay: 第{}次执行方法", fixedDelayCount++);
    }
    @Scheduled(fixedDelay = 3000)        
    public void testFixDelay1() {
        try {
            Thread.sleep(3000);
            log.info("===fixedDelay1: 第{}次执行方法", fixedDelayCount1++);
            if (fixedDelayCount1 == 3) {
                int i = 1 / 0;
            }
        } catch (Exception e) {
            log.error(e.toString());
        }
    }
}

如果定时器遇到异常,并不会使定时器断掉,抛出异常后会重新运行。

欢迎指正:haizi2014@qq.com
原文地址:https://www.cnblogs.com/hcfan/p/9843471.html