一、所处jar包
java中的rt.jar中
package java.util.concurrent;
二、使用
package com.demo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.springframework.stereotype.Service;
import java.util.TimerTask;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service("scheduledExecutorLocalService")
public class ScheduledExecutorLocalService {
//核心线程数
int corPollSize = 1;
//线程名前缀
String threadNamePrefix = "线程名前缀";
//初始化执行延迟时间数
int initDelay = 5;
//每次任务执行延迟时间
int period = 5;
static ScheduledExecutorService scheduledExecutorService = new ScheduledThreadPoolExecutor(corPollSize,new BasicThreadFactory.Builder().namingPattern(threadNamePrefix ).daemon(false).build());
{
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
try {
//业务逻辑
}catch (Exception e){
log.error("业务异常日志打印 ,e:{}",e);
}
}
};
scheduledExecutorService.scheduleAtFixedRate(timerTask, initDelay, period, TimeUnit.MINUTES);
}
}