scheduleAtFixedRate和scheduleWithFixedDelay方法

先上一段代码

package com.xxl.job.executor.utils;

import groovy.util.logging.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

@Component
public class OrderService {

    /**
     * bean初始化的时候,启动一个线程
     * 每10MS,把队列里的请求批量请求
     */
    @PostConstruct
    public void init(){
        ScheduledExecutorService scheduledExecutorService=
                Executors.newScheduledThreadPool(1);
        scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                System.out.println("AAA");
            }
        },0,5, TimeUnit.SECONDS);//间隔五秒


    }

    @PreDestroy
    public void destroy(){
        System.out.println("注销!");
    }


}

 1.scheduleAtFixedRate是以上一次任务的开始时间为间隔的,并且当任务执行时间大于设置的间隔时间时,真正间隔的时间由任务执行时间为准

2.scheduleWithFixedDelay是以上一次任务的结束时间为间隔的

3.异常如果不捕获则会停止调度

你可能感兴趣的:(java)