• 【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();
        }
    }
  • 相关阅读:
    Winform架构
    SQL2008多数据库查询表或删表
    hdu1114 PiggyBank
    hdu2844 Coins
    hdu2602 Bone Collector
    hdu2191 珍惜现在
    hdu1203 I NEED A OFFER!
    求推荐
    TransparentBlt
    双缓冲加载位图 WinCE
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/10998266.html
Copyright © 2020-2023  润新知