zoukankan      html  css  js  c++  java
  • 【Spring Boot】定时任务

    【Spring Boot】定时任务

    测试用业务Service

    package com.example.schedule.service;
    import org.springframework.stereotype.Service;
    @Service
    public class UserService {
        public void syncUserData(){
            System.out.println("syncUserData");
        }
    }
    
    package com.example.schedule.service;
    import org.springframework.stereotype.Service;
    @Service
    public class StudentService {
        public void syncStudentData(){
            System.out.println("syncStudentData");
        }
    }

    1、使用Spring的@Scheduled注解

    使用@EnableScheduling注解启用Spring定时任务

    package com.example.schedule;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.scheduling.annotation.EnableScheduling;
    @SpringBootApplication
    @EnableScheduling
    public class ScheduleApplication {
        public static void main(String[] args) {
            SpringApplication.run(ScheduleApplication.class, args);
        }
    }

    定时方法

    package com.example.schedule.scheduled_bean;
    import com.example.schedule.service.StudentService;
    import com.example.schedule.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    @Component
    public class YcxScheduledBean {
        @Autowired
        UserService userService;
        @Autowired
        StudentService studentService;
        @Scheduled(cron="*/2 * * * * ?")
        public void syncData() {
            System.out.println(">>> YcxScheduledBean");
            userService.syncUserData();
            studentService.syncStudentData();
        }
    }

    2、使用quartz

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-quartz</artifactId>
    </dependency>

    继承QuartzJobBean

    package com.example.schedule.job;
    
    import com.example.schedule.service.StudentService;
    import com.example.schedule.service.UserService;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.scheduling.quartz.QuartzJobBean;
    
    public class YcxSyncJob extends QuartzJobBean {
        @Autowired
        UserService userService;
    
        @Autowired
        StudentService studentService;
        @Override
        protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
            System.out.println(">>> QuartzJobBean 同步任务");
            userService.syncUserData();
            studentService.syncStudentData();
        }
    }
  • 相关阅读:
    git命令无法自动补全(sles11.3)
    linux下安装svn出现configure: error: We require OpenSSL; try --with-openssl
    Linux系统下升级Python版本步骤(suse系统)
    git commit --amend
    关于device tree中的interrupts选项
    BufferedInputStream
    FileInputStream
    FileOutputStream
    泛型上下限
    泛型接口
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/10998266.html
Copyright © 2011-2022 走看看