SpringBoot中如何执行定时任务呢?
下文笔者讲述springboot中执行定时任务的方法分享,如下所示
定时器定义
在日常开发中, 我们需定时运行一些任务 如:天气数据获取,定时发送短信,定时发送邮件 定时自动收货 那么springboot中如何运行定时任务呢?下文笔者将一一道来,如下所示
实现思路: springboot启动类上加入相应 开启定时任务的注解@EnableScheduling例:
/** * 启动类 */ @RequestMapping(value = "/") @RestController @SpringBootApplication @MapperScan(basePackages = "com.java265.dao") @Configuration @EnableSwagger2 @EnableScheduling public class Round1Application { @RequestMapping(value = "/",method = RequestMethod.GET) public String helloWorld(){ return "Hello World"; } public static void main(String[] args) { SpringApplication.run(Round1Application.class, args); } @Bean public Docket createApi(){ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.basePackage("com.java265.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("API文档") .description("API使用即参数定义") .termsOfServiceUrl("http://java265.com") .contact("java265") .version("0.1") .build(); } } //创建实现定时任务Service @Component public class QuartzService { //每分钟启动 @Scheduled(cron = "0 0/1 * * * ?") public void timerToNow(){ System.out.println("now time:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); } }
定时器定义
@Scheduled
@Scheduled(fixedRate = 5000) public void timerToZZP(){ System.out.println("ZZP:" + new Random().nextLong() + new SimpleDateFormat("HH:mm:ss").format(new Date())); } @Scheduled(fixedDelay = 50000) public void timerToReportCount(){ for (int i = 0; i < 10; i++){ System.out.println("<================its" + i + "count===============>" + new SimpleDateFormat("HH:mm:ss").format(new Date())); } } @Scheduled(initialDelay = 50000,fixedRate = 6000) public void timerToReport(){ for (int i = 0; i < 10; i++){ System.out.println("<================delay :" + i + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "count===============>"); } }
注解属性功能说明
fixedRate: 上一次 启动时间点之后 X秒执行一次 fixedDelay: 上一次 结束时间点之后 每X秒执行一次 initialDelay: 第一次延迟 X秒执行 之后按照fixedRate的规则每X秒执行
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。