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();
        }
    }
  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/10998266.html
Copyright © 2011-2022 走看看