Java工具类中读取配置时间 实现定时任务
温馨提示:
本文最后更新于 2022年11月22日,已超过 493 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
SpringBoot项目的yml配置文件中配置时间,在工具类读取配置时间,定时查询数据库,实现定时任务。
注意:
1.工具类需要@Component
2.需要静态成员方法。
3.set方法不能为static。
4.注解@Value直接在set方法上。
工具类代码如下:
import java.util.Date;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* 定时任务
* @author 王小东
*
*/
@Component
public class TimedtaskUtil {
private static String minute;
@Value("${timedtask.minute}")
public void setMinute(String minute) {
TimedtaskUtil.minute = minute;
} private static BaseinfoMapper baseinfoMapper;
@Autowired
public void setBaseinfoMapper(BaseinfoMapper baseinfoMapper) {
TimedtaskUtil.baseinfoMapper= baseinfoMapper;
}
public void start() {
if(StringUtils.isBlank(minute)) {
minute = "10";
}
System.out.println("------已成功开启定时任务,当前配置任务间隔时间为:: "+minute+" 分钟-----定时任务创建时间:: "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
// 创建定时器任务
TimerTask timerTask = new TimerTask() {
@Override
public void run() { //数据库查询任务 定时保持连接
baseinfoMapper.selectInvUserTimedTask();
}
};
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(2);
scheduledThreadPool.schedule(timerTask, Long.valueOf(minute), TimeUnit.MINUTES);
scheduledThreadPool.scheduleAtFixedRate(timerTask, Long.valueOf(minute), Long.valueOf(minute), TimeUnit.MINUTES);
}
}
启动入口类调用start方法
正文到此结束
- 本文标签: Spring Boot 定时器 工具类
- 本文链接: http://www.92cxy.cn/article/66
- 版权声明: 本文由王小东原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
相关文章
该篇文章的评论功能已被站长关闭