这里为什么要说定时任务呢?
因为最近有个项目,要做类似于定时去连接其他系统接口,不停的获取数据,这种情况下,
如果有新加入的接口,要自动检测连接,我们在做一些监控数据,实时做一些操作的时候
往往需要用到定时任务,那么使用的时候:
1.如何选择定时任务,如果项目需要多节点部署,那么一开始的时候,最好就不要用Timer,
Timer不支持分布式,多个节点部署,需要自己设计多节点保活机制,需要自己设计节点选举,多活等
考虑这些问题,而且Timer是周期执行的,你不能指定比如每天早上10点开始执行.
2.可以使用Quartz,这个本身支持分布式部署,可以保证多个节点同时只有一个节点在运行定时任务,
但需要注意,要求各个服务器节点的时间要保持同步.
1.Timer的使用不用说了,来看一下Scheduled
@Configuration
@EnableScheduling
@Slf4j
public class SpringScheduleConfig {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Scheduled(fixedRate = 1000 * 60L)
public void runIntervalTask(){
log.info("Spring3.*之后的自带定时任务实现 ===> fixedRate表示按固定频率执行该任务---打印当前时间:{}",sdf.format(new Date()));
}
@Sched