`
jwfdp
  • 浏览: 46605 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring-定时器-JobDetailBean jobDataAsMap

阅读更多

最近在项目中用到 了Spring的JobDetailBean,可以在JobDetailBean中调用QuartzJobBean,可以通过jobDataAsMap传递参数:

 

如:QuartzJobBean的实例TestTimeOutJob :

 

 

import java.util.HashMap;

import java.util.Map;

 

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.quartz.SchedulerException;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.ApplicationContext;

import org.springframework.scheduling.quartz.QuartzJobBean;

 

 

public class TestTimeOutJob extends QuartzJobBean {

 

private int id;

private String name;

public void setId(int id) {

this.id = id;

}

 

public void setname(String name) {

this.name = name;

}

 

@Override

protected void executeInternal(JobExecutionContext context) throws JobExecutionException {

try {

System.out.println("---------id: " + id);

System.out.println("---------name: " + name);

} catch (BeansException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SchedulerException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

}


spring bean.xml中配置:

<bean id="testTimeOutJob" class="org.springframework.scheduling.quartz.JobDetailBean" scope="prototype">

<property name="jobClass" value="xx.xx.xx.TeployTimeOutJob"></property>

</bean>



启动job,通过jobDataAsMap传递参数:


//通过spring的注入获取TestTimeOutJob实例
JobDetailBean testJob = context.getBean("testTimeOutJob", JobDetailBean.class);
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("id", "1");
jobDataMap.put("name", "test");
testJob.setJobDataMap(jobDataMap);
schedulerUtil.deployTimeOut(scheduler, deployJob);


//Util类,启动job
public class SchedulerUtil {
public void deployTimeOut(Scheduler scheduler, JobDetailBean job) {
try {
job.setName("test_timeout");
//10分钟调用一次
Trigger trigger = new SimpleTrigger(job.getName() + "_trigger", new Date(Calendar.getInstance().getTimeInMillis() + (1000 * 60 * 10)));
//调用job(TestTimeOutJob)
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
评论

相关推荐

    spring定时器轻松搞定

    class="org.springframework.scheduling.quartz.JobDetailBean"&gt; value="com.electricity.BIZ.MapOutTime"&gt; &lt;/property&gt; &lt;property name="jobDataAsMap"&gt; &lt;map&gt; &lt;entry key="biz" value-ref="timesBiz"&gt;...

    Spring定时器配置详解

    JobDetailBean 是 Spring 定时器中的另一个核心组件,它负责定义任务的执行细节。通过设置 JobDetailBean 的 jobClass 属性,可以指定任务的执行类。 例如,以下代码定义了一个 JobDetailBean,它将执行 ...

    Spring 定时器.txt

    ### Spring 定时器知识点详解 #### 一、Spring 定时器概述 Spring 框架提供了多种机制来支持定时任务的实现,这其中包括基于 Java 的标准 `java.util.Timer` 和更为强大的 Quartz 调度框架的支持。本文档将详细...

    JAVA中 Spring定时器的两种实现方式

    这两种定时器在Spring中的使用和配置有所不同,各有优缺点,适合不同的应用场景。 1. **Java Timer定时** Java Timer定时器是Java标准库的一部分,使用相对简单。要在Spring中使用,首先需要创建一个继承自`...

    spring定时器

    ### Spring定时器实现详解 #### 一、Spring定时器简介 Spring框架提供了强大的定时任务管理功能,这使得开发者能够方便地在系统中实现各种复杂的定时任务需求。其中一种常用的技术方案是结合Quartz来实现定时任务...

    Spring定时器.pdf

    &lt;bean id="autoSendMail" class="org.springframework.scheduling.quartz.JobDetailBean"&gt; &lt;value&gt;com.ftssh.outsourcing.web.action.outsourcing.AutoSendMailByTime&lt;/value&gt; &lt;property name="jobDataAsMap"&gt;...

    java Spring OpenSymphony的Quartz定时器的时间设置

    #### 一、Spring定时器的两种实现方式概述 在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨...

    Spring与QuartZ集成定时器

    【Spring与QuartZ集成定时器】是一种在Java应用程序中实现定时任务的常见方式,它结合了Spring框架的灵活性和Quartz的定时功能。Quartz是一个开源的作业调度框架,可以用于创建、调度和执行重复性的任务。Spring则...

    spring定时任务配置详解.doc

    - `JobDetailBean`:定义了定时任务的基本信息,如任务类(`JudgeDateQuartzJobBean`)和传递给任务的参数(在`jobDataAsMap`中设置`timeout`为0)。 - `CronTriggerBean`:用于定义触发任务执行的CRON表达式,`...

    java Quartz定时器任务与Spring task定时的几种实现方法

    &lt;bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean"&gt; &lt;property name="jobDataAsMap"&gt; &lt;!-- 配置触发器 --&gt; &lt;bean id="simpleTrigger" class="org.springframework....

    spring常用配置

    ##### 定时器的使用:Spring与Quartz的集成 Spring支持多种定时任务的实现方案,其中较为常见的是与Quartz的集成。Quartz是一个功能强大的作业调度库,可以方便地与Spring框架集成,用于实现复杂的定时任务需求。 ...

    sping定时器小例子

    &lt;bean id="MyTimeSpringJob" class="org.springframework.scheduling.quartz.JobDetailBean"&gt; &lt;property name="jobClass" value="com.zhangkeinfo.spring.time.UpdateTime" /&gt; &lt;property name="jobDataAsMap"&gt; ...

Global site tag (gtag.js) - Google Analytics