springboot心跳机制,执行定时任务
<!-- 定时任务 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
ScheduledConfig.java
@Configuration
public class ScheduledConfig implements SchedulingConfigurer {
@Value("${scheduled-thread-pool}")
private int scheduledThreadPool;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.setScheduler(setTaskExecutors());
}
//
@Bean(destroyMethod = "shutdown")
public Executor setTaskExecutors() {
return Executors.newScheduledThreadPool(scheduledThreadPool); // scheduledThreadPool个线程来处理。
}
}
具体执行的任务:
ScheduledDeleteData.java
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.pub.cloud.system.status.util.H2Util;
@Component
public class ScheduledDeleteData {
private static final Logger logger = LogManager.getLogger(ScheduledDeleteData.class);
@Value("${source-url}")
private String sourceUrl;
//时间间隔
@Scheduled(fixedRate = 60000)
public void scheduledExcSql() {
System.out.println(sourceUrl);
}
}
application.yml配置文件
scheduled-thread-pool: 1
source-url : "*****************"
SpringApplication.run中加如注解
@EnableScheduling
LinuxSystemStatusApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class LinuxSystemStatusApplication {
public static void main(String[] args) {
SpringApplication.run(LinuxSystemStatusApplication.class, args);
}
}