`
daoshud1
  • 浏览: 558041 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

spring quartz xml中配置任务

 
阅读更多
使用spring quartz集群时,有一些任务已经存在,可以通过配置的方式将任务持久化到数据库中
<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource"/>
        </property>
        <property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>
        <property name="configLocation" value="classpath:quartz.properties"/>
        <property name="triggers">
        	<list>
        		<ref bean="trigger1"/>
        	</list>
        </property>	
    </bean> 
    <!-- 原测试内容 -->
    
    <bean id="jobDetail1" class="org.springframework.scheduling.quartz.JobDetailBean">
    	<property name="jobClass"> 
			<value>com.xlwzsoft.timepieceTask.task.DBClusterQuartzJobBean</value> 
		</property>
		<property name="jobDataAsMap">   
			<map>   
				<entry key="targetObject" value="timeManagerServiceImpl"/>  
				<entry key="targetMethod" value="execute"/> 
				<entry key="taskType" value="cronType"></entry>
			</map>
		</property> 
    </bean>
    <bean id="trigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobDetail1"/>
        <property name="cronExpression" value="0/5 * * ? * * *"/>
    </bean>    
//com.xlwzsoft.timepieceTask.task.DBClusterQuartzJobBean的内容:
public class DBClusterQuartzJobBean extends QuartzJobBean {  
    protected final Log logger = LogFactory.getLog(getClass());  
    private String targetObject;  
    private String targetMethod;
    private String taskInfoId;
    private String taskType;
    private String taskTime;
    private ApplicationContext ctx;  
  
    @Override  
    protected void executeInternal(JobExecutionContext context)  
            throws JobExecutionException {  
        try {  
            logger.info("bean:"+targetObject);
//            targetObject=context.getMergedJobDataMap().getString("targetObject");
//            targetMethod=context.getMergedJobDataMap().getString("staticMethod");
            //强转类型 由spring中获得要调用的bean类
            Job otargetObject = (Job)SpringUtil.getBean(targetObject);//ctx.getBean(targetObject);  
//            Method m = null;  
            //执行类的execute方法
        	otargetObject.execute(context);
        	//判断当前任务是否执行下一次
        	executeNext();
//                m = otargetObject.getClass().getMethod(targetMethod, JobExecutionContext.class);  
//                m.invoke(otargetObject, context);  
        } catch (Exception e) {
        	logger.info(e.getMessage());
        	exceptionError(e.getMessage());
        }  
    }

jobDataMap中的数据在DBClusterQuartzJobBean中需声明,并且实现get/set方法,方可在方法中获得,targetObject所指向的bean,需要实现Job接口,并且targetMethod必须为execute
分享到:
评论

相关推荐

    spring quartz通过xml配置实现定时任务demo

    通过上述步骤,你就成功地在Spring中使用XML配置实现了Quartz定时任务。这种方式使得任务的定义、触发策略和调度管理都集中在一个配置文件中,方便管理和扩展。在实际开发中,可以根据需求调整CRON表达式,或者添加...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    在 Spring 中,Quartz 的配置主要通过 XML 文件来实现。我们可以在 Spring 的配置文件中定义 Quartz 的 bean,以便实现任务的定时执行。 QuartzJob.java 在这个示例中,我们定义了一个 QuartzJob 类,该类实现了...

    SpringQuartz的使用文档

    SpringQuartz是一个强大的任务调度框架,它在Java应用程序中用于自动化执行特定任务,如定时生成文件、统计数据或执行后台清理工作。Quartz是开源的,具有高度灵活的调度功能,能够根据预定义的时间表触发任务,同时...

    关于spring中quartz的配置

    在开始配置之前,首先需要在项目的`pom.xml`或`build.gradle`文件中引入Quartz和Spring相关的依赖库。对于Maven项目,可以添加如下依赖: ```xml &lt;groupId&gt;org.quartz-scheduler &lt;artifactId&gt;quartz ...

    spring多个定时任务quartz配置

    7. **多任务配置**:如果需要配置多个定时任务,只需重复上述步骤,为每个Job和Trigger创建不同的bean,并在适当的地方添加到Scheduler中。 通过以上步骤,你可以在Spring中成功配置并运行多个Quartz定时任务。记得...

    spring quartz定时任务demo

    总的来说,“spring quartz定时任务demo”提供了一个直观的教程,帮助开发者理解如何在Spring项目中配置和使用Quartz进行定时任务的创建和管理。通过这个例子,你可以快速学习到如何定义Job,如何配置Trigger,以及...

    springboot整合quartz定时任务yml文件配置方式

    在Spring Boot应用中整合Quartz定时任务是一种常见的需求,它可以帮助我们执行周期性的后台任务,如数据同步...在实际项目中,还可以根据需要进一步配置复杂的定时策略,或者利用Nacos的配置管理功能动态调整任务配置。

    Spring Quartz定时任务 jar包

    1. **Spring集成Quartz**:Spring为Quartz提供了声明式配置,可以在Spring的XML配置文件中定义Job(任务)和Trigger(触发器)。Job是实际执行的任务,而Trigger则规定了何时执行Job。Spring会自动管理和调度这些Job...

    spring注解Quartz定时执行功能

    在Spring框架中集成Quartz库可以实现强大的定时任务管理功能。Quartz是一个开源的作业调度框架,它允许程序创建和管理任务,以便在特定时间自动执行。Spring通过其优秀的依赖注入(DI)和AOP(面向切面编程)特性,...

    spring3配置quartz定时任务

    本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务是在指定时间点或按照一定规律自动执行的任务,这在业务系统中非常常见,例如数据清理、报表生成等。Quartz提供...

    spring quartz 表达式在线生成器

    6. **最佳实践**:关于如何优化Quartz任务配置,减少资源消耗,以及如何处理任务异常等方面的建议。 标签中的“源码”可能意味着博客或工具会涉及Quartz和Spring的源代码解析,帮助读者理解内部工作原理。而“工具...

    转:spring多个定时任务quartz配置

    本文将深入探讨如何在Spring中配置多个Quartz定时任务,并结合`quartz.properties`文件进行详细讲解。 首先,我们需要理解Quartz的基本概念。Quartz是开源的作业调度框架,允许应用程序在特定时间执行任务。它支持...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    2. 配置Scheduler:在Spring的配置文件中,使用`SchedulerFactoryBean`来初始化和配置Quartz Scheduler。可以设置如数据库存储、线程池大小等参数。 3. 创建Job类:定义一个实现了`org.quartz.Job`接口的类,这是...

    Spring中Quartz的配置

    ### Spring中Quartz的配置详解 #### 一、前言 Spring框架因其强大的功能和灵活性在企业级应用开发中占据了一席之地。其中,对于定时任务的支持,Spring结合了Quartz这一优秀的开源任务调度框架,提供了更为灵活和...

    spring-quartz定时任务小实例

    5. **配置Spring XML**:在Spring的配置文件中,你需要声明Job和Trigger,并将它们绑定到Scheduler。例如,使用`&lt;bean&gt;`标签定义Job和Trigger,并使用`&lt;job&gt;`和`&lt;trigger&gt;`标签将它们添加到Scheduler。 6. **启动...

    spring集成quartz集群配置

    本文将深入探讨如何在Spring环境中集成Quartz以实现集群配置,以便于在分布式环境中进行高效的任务调度。 首先,理解Spring集成Quartz的核心在于Spring的Job接口和Quartz的Scheduler。Spring提供了`org.spring...

    spring+quartz动态定时任务创建 +mybatis

    在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...

    spring基于task标签和通过xml配置实现任务的区别

    - 在Spring早期版本中,任务调度通常通过XML配置完成。开发者需要定义`ThreadPoolTaskExecutor`或`SimpleAsyncTaskExecutor`等执行器,并配置相应的定时任务。 - 在XML配置中,你可以定义`&lt;bean&gt;`来创建任务类,并...

    Quartz+spring定时任务demo

    3. **配置 Spring**:在 Spring 的 XML 配置文件中声明一个 `SchedulerFactoryBean`,这是 Spring 用来管理和启动 Quartz Scheduler 的 bean。通过 `SchedulerFactoryBean`,我们可以设置 Quartz 属性,比如 ...

    Quartz2.2.1基于Spring注解方式配置Quartz

    本文将详细介绍如何在Spring环境中使用注解方式配置Quartz。 1. **引入依赖** 在项目中,你需要引入Quartz和Spring的相应依赖。在Maven的pom.xml文件中,添加以下依赖: ```xml &lt;groupId&gt;org.quartz-scheduler...

Global site tag (gtag.js) - Google Analytics