浅谈java定时任务:quartz、quartz with spring

本文讲一下quartz、quartz with spring

  • 添加依赖:
 <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>1.8.5</version>
 </dependency>

quartz

  • 注册job
public class InvokeQuartz {
    public void start() {
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        try {
            Scheduler scheduler = schedulerFactory.getScheduler();
            JobDetail jobDetail = new JobDetail("quartzJob", MyJob.class);
            CronTrigger cronTrigger = new CronTrigger("quartzTrigger");

            CronExpression cronExpression = new CronExpression("* * * * * ?");
            cronTrigger.setCronExpression(cronExpression);
            scheduler.scheduleJob(jobDetail,cronTrigger);
            scheduler.start();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
  • 实现job
public class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("quartz 任务开始-----------");
    }
}
  • 初始化定时任务
<bean id="invokeQuartz" class="com.task.InvokeQuartz" init-method="start"/>

quartz with spring

quartz with spring 将 配置信息全部交给spring 使用者只需要专心实现定时任务主要逻辑即可

  • xml 配置

      <!-- ======================== 调度工厂 ======================== -->
    <bean id="SpringJobSchedulerFactoryBean"
         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="taskTrigger"/>
            </list>
        </property>
    </bean>
     <!-- ======================== 调度触发器 ======================== -->
    <bean id="taskTrigger"
          class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail">
            <ref bean="myJobDetail" />
        </property>
        <property name="cronExpression">
        //cron 表达式(在另一篇文章里有详细介绍)
            <value>0/20 * * * * ?</value>
        </property>
    </bean>
    <!-- job的配置开始 -->
    <bean id="myJob" class="com.task.MyJob"/>
    
    <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="myJob"/>
        <property name="targetMethod" value="execute"/>
        <property name="concurrent" value="false" />
    </bean>
  • MyJob 实现

public class MyJob{
    public void execute() {
        System.out.println("定时任务开始");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值