学无先后,达者为师

网站首页 编程语言 正文

Spring自带定时器实现定时任务,方法一

作者:小小橘子皮 更新时间: 2023-12-17 编程语言

1.开启定时任务注解

在类上添加注解:@EnableScheduling

2.cron表达式

@Scheduled(cron = "0 0 10 * * ? ")

实例:

package com.ynkbny.enterprise.scheduled;

import com.ynkbny.enterprise.service.CarbonEmissionsService;
import com.ynkbny.enterprise.service.LaoGouService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.time.LocalDate;

/**
 * @title 自动任务
 * @description 自动任务
 * @version 1.0.0
 * @create 2023/12/4
 **/
@Component
@EnableScheduling
public class ScheduledTask {

   private final Logger logger = LoggerFactory.getLogger(ScheduledTask.class);

   @Resource
   private LaoGouService laoGouService;

   @Resource
   private CarbonEmissionsService carbonEmissionsService;

   @Bean
   public TaskScheduler taskScheduler() {
      ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();

      //我这里设置的线程数是18,可以根据需求调整
      taskScheduler.setPoolSize(18);
      return taskScheduler;
   }

   /**
    * 存储 查询项目列表
    *
    * 每天1点执行
    *
    */
   @Scheduled(cron = "0 0 1 * * ? ")
   public void queryProjectList() {
      //测试 (cron="*/10 * * * * ?") 代表10s执行一次
      try {
         logger.info("====存储 查询项目列表 开始====");
         laoGouService.queryProjectList();
      }catch (Exception e) {
         logger.error("====存储 查询项目列表{}====", e.getMessage());
      }
      logger.info("====存储 查询项目列表 结束====");
   }


   /**
    * 存储 查询“项目表”项目的设备列表
    *
    * 每天3点执行
    */
   @Scheduled(cron = "0 0 3 * * ? ")
   public void queryDevice() {
      //测试 (cron="*/10 * * * * ?") 代表10s执行一次
      try {
         logger.info("====存储 查询“项目表”项目的设备列表 开始====");
         laoGouService.queryDevice();
      }catch (Exception e) {
         logger.error("====存储 查询“项目表”项目的设备列表{}====", e.getMessage());
      }
      logger.info("====存储 查询“项目表”项目的设备列表 结束====");
   }


}

原文链接:https://blog.csdn.net/m0_58660225/article/details/134786888

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新