springboot项目中使用quartz创建定时任务

1、首先引入jar包

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

2、创建定时任务执行的逻辑类

import org.springframework.stereotype.Component;



@Component
public class SyncUserJob  {
  //逻辑执行方法
    protected void executeInternal() {
        System.out.println("定时执行+++++++++++++++++++123");
    }
}

```java
在这里插入代码片

3、创建quartz中的工具类

@Configuration
public class QuartzConfig {

   private ApplicationContext applicationContext;
    //创建jobdatil对象
    @Bean
    public MethodInvokingJobDetailFactoryBean testJobDetail(SyncUserJob userJob){
        return createJobDetail(userJob,"executeInternal");
    }
    //创建trigger
    @Bean
    public CronTriggerFactoryBean TestJobTrigger(JobDetail testJobDetail) {
        //CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/2 * * * * ?");
   return    createTrigger(testJobDetail,"0/2 * * * * ?");
    }


    //快捷创建jobdatil
    public MethodInvokingJobDetailFactoryBean createJobDetail(Object object, String detailName) {
        MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();
        jobDetail.setTargetObject(object);//设置目标对象
        jobDetail.setTargetMethod(detailName);//设置执行方法名称
        jobDetail.setConcurrent(false);//防止并发
        return jobDetail;

    }
    //快捷创建trigger
    public CronTriggerFactoryBean createTrigger(JobDetail jobDetail, String detailName) {
        CronTriggerFactoryBean conTrigger = new CronTriggerFactoryBean();
        conTrigger.setJobDetail(jobDetail);//设置任务详情
        conTrigger.setCronExpression(detailName);//设置时间
        return conTrigger;
    }
//手动执行指定的定时任务中传入jobdatilId为创建jobdatil的方法名称如testJobDetail()方法
    public void  invokeJobDetail(String jobdatilId) throws InvocationTargetException, IllegalAccessException {
        MethodInvoker methodInvoker=    (MethodInvoker)applicationContext.getBean("&"+jobdatilId);
        if (methodInvoker!=null){

            methodInvoker.invoke();
        }


    }
}

4、启动项目会出现以下结果
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值