Java定时任务Quartz

Posted dslnn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java定时任务Quartz相关的知识,希望对你有一定的参考价值。

第一步:创建xml文件,名称为:spring-scheduler 路径如下图:

技术分享图片

第二步:spring-scheduler配置详情

<!--创建任务-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobDetails">
            <list>
                <ref bean="updateTimeOutUrgentJobDetail" />
                <ref bean="earlyWarnJobDetail" />
                <!--<ref bean="msgPushJobDetail" />-->
            </list>
        </property>
<!--引入触发器-->
        <property name="triggers">
            <list>
                <ref bean="updateTimeOutUrgentTrigger" />
                <ref bean="earlyWarnJobTrigger" />
                <!--<ref bean="msgPushJobTrigger" />-->
            </list>
        </property>
    </bean>

    <!--任务 引入具体的service-->
    <bean id="updateTimeOutUrgentJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="cn.com.klec.bepcs.web.quartz.TimeOutUrgentJob" />
        <property name="jobDataMap">
            <map>
                <entry key="timeOutUrgentJobService" value-ref="timeOutUrgentJobService" />
            </map>
        </property>

        <property name="durability" value="true" />
    </bean>
<!--创建触发器-->
     <bean id="updateTimeOutUrgentTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--引入任务-->
        <property name="jobDetail" ref="updateTimeOutUrgentJobDetail" />
<!--指定 Cron 表达式-->
        <property name="cronExpression" value="0 0 * * * ?"/>
    </bean>

第三步:实现定时任务,具体的业务操作

第四步:创建任务 TimeOutUrgentJob

public class TimeOutUrgentJob extends QuartzJobBean {
    private static final Logger LOG = LoggerFactory.getLogger(TimeOutUrgentJob.class);
    private TimeOutUrgentJobService timeOutUrgentJobService;
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        LOG.info("**********************里程碑催办任务启动*******************************");
        try {
            timeOutUrgentJobService = (TimeOutUrgentJobService) context.getMergedJobDataMap().get("timeOutUrgentJobService");
             timeOutUrgentJobService.insertInfo();
            
            
        } catch (Exception e) {
            LOG.error("里程碑催办任务异常: ", e);
        } finally {
            LOG.info("**************************里程碑催办任务结束 **************************");
        }
    }
        
}

注释:timeOutUrgentJobService.insertInfo();就是项目中需要具体实现的业务

以上是关于Java定时任务Quartz的主要内容,如果未能解决你的问题,请参考以下文章

Quartz定时任务调度

Quartz定时任务

Java定时任务Quartz

java sql编辑器 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫 java代码生成器

Java 定时任务 Quartz —— 并发

atititt.java定时任务框架选型Spring Quartz 注解总结