`
thinktothings
  • 浏览: 784817 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring2.0 Quartz 执行每天定时任务 建议用quartz-all-1.8.4.jar更稳定,兼容性更好

阅读更多
package com.tht.common.job.spring;

import java.util.Date;

/**
 * Created by IntelliJ IDEA.
 * User: liuwen
 * Date: 2010-11-6
 * Time: 20:30:42
 * To change this template use File | Settings | File Templates.
 */
public class JobData {

    public String getDate(){
        return "Data from "+new Date().toString();
    }
}

 

package com.tht.common.job.spring;

import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

/**
 * Created by IntelliJ IDEA.
 * User: liuwen
 * Date: 2010-11-6
 * Time: 20:35:02
 * To change this template use File | Settings | File Templates.
 */
public class DemoJob  extends QuartzJobBean{

    private JobData jobData;
    @Override
    protected void executeInternal(org.quartz.JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //To change body of implemented methods use File | Settings | File Templates.
        System.out.println(jobData.getDate()+"执行了");
    }

    public JobData getJobData() {
        return jobData;
    }

    public void setJobData(JobData jobData) {
        this.jobData = jobData;
    }
}

 

 

package com.tht.common.job.spring;

import org.apache.log4j.Logger;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Timer;

/**
 * Created by IntelliJ IDEA.
 * User: liuwen
 * Date: 2010-11-6
 * Time: 19:43:29
 * To change this template use File | Settings | File Templates.
 * 启动类,并控制何时关闭时钟任务
 */
public class TimerTaskDemo {
     static Logger log=Logger.getLogger(TimerTaskDemo.class);


    public static void main(String[] args){
        ApplicationContext context=new ClassPathXmlApplicationContext("beans-config.xml");
        log.info("启动任务。。。。。。");
        log.info("请输入exit,关闭任务");
        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        while(true){
            try {
                if(reader!=null && "exit".equals(reader.readLine())){
                    break;
                }
            } catch (IOException e) {
                log.error(e.getMessage(), e.fillInStackTrace());
            }
        }

        Scheduler scheduler =(Scheduler)context.getBean("schedulerFactoryBean");
        try {
            scheduler.shutdown();
        } catch (SchedulerException e) {
            log.error(e.getMessage(), e.fillInStackTrace());
        }
    }
}

 

   beans-config.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  
    <bean id="someData" class="com.tht.common.job.spring.JobData"/><!-- 时钟任务,执行任务时,会调用该类中的 run()方法,来执行。。。 -->

    <bean id="jobDetailBean" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.tht.common.job.spring.DemoJob"></property>
        <property name="jobDataAsMap">
            <map>
                <entry key="jobData" value-ref="someData"></entry>
            </map>
        </property>
    </bean>
    
    <bean id="cronTriggerBean"
          class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobDetailBean"/>
         <!-- 0 36 21 * * ?表示每天21点18分,执行任务  ;  0 0 7 * * ? 表示每天7点执行任务   多个时间点执行用逗号分开                        -->
        <property name="cronExpression" value="0 36 21 * * ?"/>

    </bean>
    
    <bean id="schedulerFactoryBean"
          class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTriggerBean"/>
            </list>
        </property>
    </bean>
    
</beans>

 

log4j.properties

 log4j.rootLogger=DEBUG,CONSOLE,R
 log4j.addivity.org.apache=true 
 
 
 #ConsoleAppender
 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
 log4j.appender.Threshold=DEBUG
 log4j.appender.CONSOLE.Target=System.out
 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
 log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p [%t]  -%l   - %m%n
 #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
 
 
#FileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.R.File=E\:/log/20101104/backup.log 
log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH-mm
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d %-5p [%t]  -%l   - %m%n

 

 

分享到:
评论

相关推荐

    quartz-all-1.8.4.jar

    quartz-all-1.8.4.jar

    spring2.0 Quartz 执行每天定时任务 普通普是执行任务

    标题中的“spring2.0 Quartz 执行每天定时任务 普通普是执行任务”涉及到的是在Spring 2.0框架中使用Quartz库来创建并执行每天定时任务的场景。Quartz是一款强大的开源作业调度框架,它可以用来按计划执行各种任务,...

    quartz-all-1.8.6.jar

    quartz-all-1.8.6.jar

    quartz-1.8.4.jar

    quartz-1.8.4.jar

    quartz-all-1.6.0.jar包定时任务jar

    Quartz提供多种Trigger类型,如SimpleTrigger(一次性执行或按固定间隔重复执行)、CronTrigger(根据Cron表达式执行,类似于Linux的crontab)等。开发者可以根据需求选择合适的Trigger类型,并设置其属性。 3. **...

    quartz-all-1.8.5.jar

    quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar

    spring2.0 使用 Quartz 必备包

    spring2.0 使用 Quartz 必备包 里面有: quartz-all-1.5.2.jar spring-support.jar 适合:SSH框架 spring2.0 strut2.0 hibernate3.2等

    shiro-jar.zip

    shiro-all-1.7.1.jar,shiro-aspectj-1.7.1.jar,shiro-cache-1.7.1.jar,shiro-config-core-1.7.1.jar,shiro-config-ogdl-1.7.1.jar,shiro-core-1.7.1.jar,shiro-crypto-cipher-1.7.1.jar,shiro-crypto-core-1.7.1.jar...

    spring-boot-2.1.3.RELEASE.jar.rar

    spring-boot-2.1.3.RELEASE.jar -autoconfigure- -devtools- -maven-plugin- -starter- -starter-jdbc- -starter-json- -starter-logging- -starter-test- -starter-tomcat- -starter-web- -test- -test-...

    spring-context-support.jar

    spring-context-support.jar spring整合任务调度quartz必需jar 还需要quartz-all-x.x.x.jar quartz版本必需在1.8.x以下

    spring-context-support-4.2.2.RELEASE.jar 的jar包

    例如,你可以通过XML配置或者使用`@Scheduled`注解来定义周期性执行的任务,这对于实现后台的定时任务处理非常有用,如数据同步、报表生成等。 2. **邮件服务支持**: 该模块还提供了对JavaMailSender接口的实现,...

    spring-context-support.jar,quartz-all-1.6.0.jar

    将Quartz与Spring结合使用,可以借助Spring的IoC(Inversion of Control,控制反转)和AOP能力来更好地管理和控制定时任务。`quartz-all-1.6.0.jar`包含了Quartz的所有功能模块,包括核心API、JDBC作业存储支持以及...

    Spring框架(spring-framework-5.2.6.RELEASE)的jar包

    5.2.6.RELEASE是Spring框架的一个稳定版本,它包含了一系列的jar包,这些jar包是构建和运行基于Spring的应用程序所必需的。在深入探讨这些jar包之前,我们先来理解Spring的核心概念。 Spring框架主要由以下核心模块...

    spring-context-support-4.0.5.RELEASE.jar

    spring-context-support-4.0.5.RELEASE.jar

    quartzall1.6.0jar_quartz-all-1.6.0.jar_

    总的来说,"quartz-all-1.6.0.jar"是Java开发者用于实现定时任务的重要工具,它的功能强大且灵活,能够满足各种复杂的定时需求。通过了解和掌握Quartz的使用,你可以提高应用程序的自动化程度,减少手动操作,提高...

    quartz-1.6.0.jar和quartz-all-1.6.0.jar

    Quartz是Java领域的一款强大的开源任务调度框架,它允许开发者创建和管理定时任务,从而实现应用程序的自动执行功能。在给定的压缩包文件中,我们有两个版本为1.6.0的Quartz JAR包:`quartz-1.6.0.jar`和`quartz-all...

    quartz-all-1.5.2.jar

    quartz-all-1.5.2.jarquartz-all-1.5.2.jarquartz-all-1.5.2.jarquartz-all-1.5.2.jarquartz-all-1.5.2.jar

    quartz-all-1.6.0.jar

    1. **灵活的调度**:Quartz 提供了丰富的调度API,可以设置定时任务执行一次、每天重复、每周重复等,甚至可以定义复杂的触发规则,如在某些特定时间点触发。 2. **可持久化**:Quartz 支持将任务和触发器存储在...

Global site tag (gtag.js) - Google Analytics