`
chengct521
  • 浏览: 20748 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring 配置 quartz

阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>   
 <bean id="renewalReminderBean" class="com.playphone.billing.renewal.RenewalReminderBean"/>
    <bean id="renewalReminderJob" class="org.springframework.scheduling.quartz.JobDetailBean">
		<property name="jobClass">
			<value>com.playphone.billing.renewal.RenewalReminderJob</value>
		</property>
		<property name="jobDataAsMap">
			<map>
				<entry key="renewalReminderBean">
					<ref bean="renewalReminderBean" />
				</entry>
			</map>
		</property>
	</bean>
	<bean id="cronRenewalReminderTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="renewalReminderJob" />
		</property>
		<property name="cronExpression">
			<value>0 0/500 * * * ?</value>
		</property>
	</bean>
<bean id="recurrentBillingScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        	<property name="triggers">
            		<list>
   				<ref local="cronRenewalReminderTrigger"/> 
            		</list>
  		</property>
  	</bean>
</beans>

 

renewalReminderBean java code:
public class RenewalReminderBean {
	/**
	 * Get A Instance Of Log
	 */
	private static  Log log = LogFactory.getLog(RenewalReminderBean.class);

	/**
	 * 1.fetch account list belong to accountGroup from database
	 * 2.put message in queue
	 */
	public void sendRenewalReminder() {
		List accountList = null;

		IAcctAccountgroupDAO accAccountgroupDao = (IAcctAccountgroupDAO) SpringBeanLoader
				.loadBean("AcctAccountgroupDAOProxy");
		try {
			accountList = accAccountgroupDao.findAll();
		} catch (Exception e) {
			log.error("fetch all accountGroup from database Exception. Caused by "
					+ e.getMessage(), e);
			return;
		}

		AcctAccountgroup accountGroup = null;
		SubsActivePlanDAO reminderDAO = null;
		List<RenewalReminder> returnUserList = null;
		for (Iterator it = accountList.iterator(); it.hasNext();) {
			accountGroup = (AcctAccountgroup) it.next();
            try {				
				reminderDAO = new SubsActivePlanDAO();
				returnUserList = reminderDAO.findRenewalReminderBy(accountGroup);
			} catch (Exception e) {
				log.error("send renewal message throw exception. Caused by "
						+ e.getMessage(), e);
			}
			sendRenewalMessage(returnUserList);
		}		
	}

	/**
	 * put message to queue.
	 * @param userList the account which receive message
	 */
	private void sendRenewalMessage(List<RenewalReminder> userList) {
		RenewalReminderProducer producer = (RenewalReminderProducer) SpringBeanLoader
				.loadBean("renewalReminderProducer");
		for (RenewalReminder user : userList) {
			producer.send(user);
		}
	}
}

 


public class RenewalReminderJob extends QuartzJobBean {
	/**
	 * Get A Instance Of Log
	 */
	private Log log = LogFactory.getLog(RenewalReminderJob.class);
	/**
	 * JavaBean of RenewalReminder
	 */
    private RenewalReminderBean renewalReminderBean;

    /**
     * set RenewalReminderBean with Spring IOC Container
     * @param renewalReminderBean javabean
     */
    public void setRenewalReminderBean(RenewalReminderBean renewalReminderBean) {
		this.renewalReminderBean = renewalReminderBean;
	}

    /**
     * override the executeInternal
     * @param arg0 JobExecutionContext
     * @throws JobExecutionException JobExecutionException
     */
	@Override
	protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
		if (log.isInfoEnabled()) {
			log.info("RenewalReminder Job is Starting....");
		}
		long startTime = System.currentTimeMillis();

		renewalReminderBean.sendRenewalReminder();

		long endTime = System.currentTimeMillis();
		if (log.isInfoEnabled()) {
			log.info("RenewalReminder Job is Completed. Total spend time : "
					+ (endTime - startTime) + "ms");
		}
	}
}


public class ScheduleJobStart {

	private static boolean started = false;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ScheduleJobStart.start();
	}

	public static void start() {
		if (!started) {
			new ClassPathXmlApplicationContext("/billingSchedulerContext.xml");
			started = true;
		}
	}

	/**
	 * @return Returns the started.
	 */
	public static boolean isStarted() {
		return started;
	}

	/**
	 * @param started The started to set.
	 */
	public static void setStarted(boolean started) {
		ScheduleJobStart.started = started;
	}

}

分享到:
评论

相关推荐

    spring 配置quartz需要的jar包

    2. **配置Quartz**:在Spring的配置文件(如`applicationContext.xml`)中,声明一个`SchedulerFactoryBean`,这是Spring提供的用于管理Quartz Scheduler的bean。 ```xml &lt;bean id="scheduler" class="org.spring...

    spring+quartz demo

    Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...

    spring+quartz需要的4个jar包 不需要6个

    在配置完成后,你可以通过Spring的ApplicationContext来加载Quartz的相关配置,并使用Spring管理的bean作为Job执行器。这样,你可以在Spring的环境中无缝地使用Quartz进行任务调度。 在Quartz的配置中,你需要定义...

    关于spring中quartz的配置

    在Spring配置文件(如`applicationContext.xml`)中,定义`SchedulerFactoryBean`来实例化和配置Quartz Scheduler: ```xml &lt;bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz....

    Spring配置Quartz

    demo中主要实现了Spring与Quartz的结合使用。其中哟两种配置方式,一种是任务pojo方式,另一种是集成Sprihng中的QuartzBean,实际上是实现了Job接口,具体的操作信息在相应的博客中有说明。

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

    Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...

    spring配置quartz

    quartz框架定时任务在spring中的配置

    spring3配置quartz定时任务

    2. **创建作业bean**:在Spring配置文件中声明这个作业bean,并设置其类为`MyJob`: ```xml ``` 3. **定义触发器**:触发器控制作业何时执行。Quartz提供了多种类型的触发器,如SimpleTrigger、CronTrigger等。...

    quartz和spring-quartz

    学习Quartz和Spring-Quartz,不仅需要理解它们的基本概念,还要掌握如何在实际项目中进行配置和使用。例如,创建一个定时任务,你需要定义Job类,配置Trigger,然后在Spring的配置文件中设置Scheduler。此外,熟悉...

    Spring中Quartz的配置

    接下来是在Spring配置文件中对Quartz进行配置。以下是配置示例: ```xml &lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&gt; &lt;!-- 要调用的工作类 --&gt; ...

    Java_Spring与Quartz的整合

    - 配置Quartz:在Spring的配置文件(如`applicationContext.xml`)中,定义`SchedulerFactoryBean`,配置Quartz的基本参数,如线程池大小、JobStore类型等。 - 注册Job和Trigger:在配置文件中,通过`&lt;bean&gt;`标签...

    spring 集成quartz 用数据库实现quartz的集群

    2. 在Spring配置文件中创建`SchedulerFactoryBean`,配置数据源和Quartz属性。 3. 配置`quartz.properties`,指定数据库连接和Quartz参数。 4. 设计并实现`Job`和`Trigger`,定义任务逻辑和执行时机。 5. 在集群环境...

    spring3-quartz1.x

    3. **Spring配置Quartz** 在Spring的配置文件中,我们需要创建Scheduler的bean,定义JobDetail和Trigger,然后将它们绑定到Scheduler。例如: ```xml &lt;bean id="scheduler" class="org.springframework....

    Spring+quartz相关jar包.rar

    2. 配置 Scheduler:在 Spring 配置文件中,设置 Quartz 的 SchedulerFactoryBean,指定数据库存储(如果需要持久化任务信息)和相关的配置属性。 3. 定义 Job 和 Trigger:创建 Quartz 作业类(Job),实现 org....

    spring集成quartz集群配置

    在Spring配置文件中,我们可以声明这些bean并关联它们,这样Spring就能自动管理和触发Quartz任务。 集群配置的关键在于确保所有节点都能共享相同的任务状态和调度信息。Quartz通过使用数据库存储作业和触发器来实现...

    spring-quartz定时设置详细说明

    2. 配置 Quartz:在 Spring 的配置文件(如 `application.properties` 或 `application.yml`)中,可以设置 Quartz 的基本属性,如线程池大小、作业存储策略等。 ```properties # application.properties 示例 ...

    spring+quartz使用jar包

    2. **SchedulerFactoryBean**:这是Spring提供的一个工厂bean,用于配置和启动Quartz的Scheduler。你可以通过这个bean设置Quartz的相关配置,比如数据库连接、job存储策略、线程池大小等。 3. **Job和Trigger**:在...

    spring-quartz配置

    spring-quartz的标准配置文件

    Spring_QuartZDemo

    Spring提供了一个名为`org.springframework.scheduling.quartz`的包,其中包含了一些用于配置和管理Quartz的类和接口。通过Spring的XML配置或Java配置,我们可以声明式地定义Job(任务)和Trigger(触发器),并将...

    Spring+Quartz2.2.0+Demo源码实战演练【精华篇2014】

    1. **Spring配置Quartz**: - 使用`@EnableScheduling`注解开启定时任务支持。 - 创建一个配置类,使用`@Configuration`和`@EnableScheduling`注解。 - 配置`SchedulerFactoryBean`,通过`@Bean`注解创建并配置...

Global site tag (gtag.js) - Google Analytics