仔细看配置应该能看懂,就不多写注释了
applicationContext-quartz.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"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
default-lazy-init="true">
<description>Quartz Local Cron Job Configuration</description>
<!-- Quartz Schduler -->
<bean id="localQuartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
//出发事件引用列表,下面配置后要把出发类加进来
<ref bean="quoteCronTrigger"/>
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">5</prop>
</props>
</property>
<property name="startupDelay" value="3" />
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="cronJobDetail" />
<property name="cronExpression" value="0 * 12 * * ?" />
</bean>
<bean id="quoteCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="quoteCronJobDetail" />
<property name="cronExpression" value="0 * 14 * * ?" />
</bean>
<bean id="cronJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="cronJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="quoteCronJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quoteCronJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="cronJob" class="com.genscript.gsscm.common.jobs.MailSendingJob" />
<bean id="quoteCronJob" class="com.genscript.gsscm.common.jobs.DateTimerJob" />
</beans>
package com.genscript.gsscm.common.jobs;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.dozer.DozerBeanMapper;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import com.genscript.gsscm.common.events.SendMailAtOnceEvent;
import com.genscript.gsscm.common.util.Struts2Util;
import com.genscript.gsscm.contact.service.ContactService;
import com.genscript.gsscm.customer.service.CustomerService;
import com.genscript.gsscm.order.service.OrderService;
import com.genscript.gsscm.quote.dao.QuoteMainBeanDao;
import com.genscript.gsscm.quote.dto.QuoteMainDTO;
import com.genscript.gsscm.quote.entity.QuoteMain;
import com.genscript.gsscm.quote.entity.QuoteMainBean;
import com.genscript.gsscm.quote.service.QuoteService;
import com.opensymphony.xwork2.ActionSupport;
public class DateTimerJob {
@Autowired
private QuoteService quoteService;
@Autowired(required = false)
private DozerBeanMapper dozer;
private Date tmpDate=null;
private SimpleDateFormat sdf=null;
private String quoteDate=null;
private String tmpStrDate=null;
// 这是本人测试用的小例子
public void execute(){
System.out.println("------------>>>>>>>>>>>>>>test");
//from后面是对象,不是表名
List<QuoteMain> list=quoteService.getAllQuoteList();
tmpDate=new Date();
sdf=new SimpleDateFormat("yyyy-MM-dd");
for(int i=0;i<list.size();i++){
QuoteMain quoteMain=list.get(i);
QuoteMainDTO dto = this.dozer.map(quoteMain, QuoteMainDTO.class);
System.out.println("----------->>>>i=" +i);
if(i==810){
quoteMain.setStatus("OD");
quoteService.saveQuote(quoteMain);
}
// Date quoteMainDate=quoteMain.getQuoteDate();
// quoteDate=sdf.format(quoteMainDate);
// tmpStrDate=sdf.format(tmpDate);
// if(quoteDate.equals(tmpStrDate)){
// String status=quoteMain.getStatus();
// if(status.equals("CL")||status.equals("CW")){
// quoteMain.setStatus("OD");
// dto.setStatusText("over dul");
// }
// }
}
}
}
分享到:
相关推荐
本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...
标签中的“源码”可能意味着博客或工具会涉及Quartz和Spring的源代码解析,帮助读者理解内部工作原理。而“工具”则表明这是一个实用的开发辅助软件,可以帮助开发者提高效率。 由于没有具体的压缩包文件名称列表,...
这篇博客“Spring Quartz 定时器”很可能是探讨如何将Quartz集成到Spring应用中,以便利用其强大的定时任务功能。 首先,我们来看一下Spring与Quartz的结合。Spring通过`org.springframework.scheduling.quartz`包...
**Spring定时器TimerTask用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...
本篇将详细介绍如何在Spring中配置定时器,并通过一个实际的Demo来加深理解。 一、Spring定时任务概述 Spring提供了两种主要的定时任务实现方式:`TaskScheduler`和`TaskExecutor`,以及基于Quartz的`Spring...
标题中的“spring定时器启动两次原因及解决”指的是在Spring框架中使用了定时任务功能,如Spring Boot的`@Scheduled`注解或者Spring Task模块,但遇到了定时任务被触发执行了两次的问题。这种情况可能是由于配置不当...
这个"Spring定时器Quartz"的学习资源很适合初学者,它提供了可以直接运行的示例代码,帮助你快速理解和上手。 1. **Quartz简介** - Quartz是一个开源的作业调度框架,它能够精确地安排任务执行时间,支持复杂的...
Spring框架提供了两种主要的定时任务解决方案:Spring Task(也称为Spring内置定时器)和Spring Quartz。这两种方法都能帮助开发者在Java应用中实现定时任务,但各有其特点和适用场景。 **Spring Task** Spring ...
"quartz-2.1.6.zip"这个压缩包包含了使用Quartz在Spring中构建定时任务所需的各种组件和文档。 QUICK-START.html 是Quartz的快速入门指南,它通常会提供关于如何安装、配置和启动Quartz的基本步骤,以及如何创建和...
标题中的“spring、Quart 源码”指的是Spring...总之,这份源码包为你提供了一个学习和理解Spring框架和Quartz库的好机会,通过研究源码和示例,你可以提升自己的Java开发技能,特别是在企业级应用的定时任务处理方面。
在提供的压缩包文件“quartz项目资料”中,可能包含了关于如何设置Quartz与Spring集成的详细示例代码、数据库脚本、配置文件等,你可以进一步学习和参考。通过实践这些资料,你将能够更好地理解和掌握如何利用Quartz...
而对于Quartz,Spring则提供了`org.springframework.scheduling.quartz` 包,可以将Quartz的Job和Trigger与Spring的bean管理结合起来,实现更加灵活的控制。 在实际使用中,如果你的应用只需要简单的定时任务,如...
标题 "spring 定时器运用" 指的是在Spring框架中使用定时任务的功能。Spring提供了多种方式来实现定时任务,如使用`@Scheduled`注解、Quartz Scheduler或者Spring Task(Spring内置的定时任务模块)。这篇博文可能是...
在提供的压缩包`spring_pro_03`中,很可能是包含了一个使用Spring集成Quartz的示例项目。Spring通过`org.springframework.scheduling.quartz.SchedulerFactoryBean`将Quartz的Scheduler实例化,并且可以方便地通过...
这篇博客文章提供了对Quartz的深入理解和示例应用,通过阅读可以了解到如何利用Quartz来创建和管理定时任务。 Quartz的核心概念包括: 1. **Job**:这是你需要定时执行的任务,它是一个接口,实现该接口的类定义了...
通常,这样的文件可能包含示例代码、测试用例或者相关配置,有助于实践和理解Spring的定时调用功能。 总的来说,Spring的定时调用功能是通过`@Scheduled`注解或`Quartz`来实现的,它们为开发者提供了灵活的任务调度...
文件名称“springquartz”可能是关于Spring集成Quartz的示例代码或配置文件,包含了创建和管理定时任务的关键代码片段,例如定义Job类、Trigger和Scheduler的配置。 总的来说,要在集群环境中确保定时器更新数据库...
通过这个"spring+quartz demo"源码,你可以深入学习如何在Spring应用中配置和使用Quartz,以及如何将它与Spring的其他功能(如依赖注入)结合。这将帮助你构建更复杂、可扩展的定时任务系统。记得下载后仔细阅读代码...
在提供的`springTimer`压缩包中,你可以找到相关的源码和配置示例,帮助你更好地理解和实践这两种定时任务的实现方式。通过深入学习和实践,你将能够熟练掌握Spring中的定时任务管理,提升你的开发技能。
总的来说,`Timer`和`TimerTask`是Java中实现简单定时任务的便利工具,但在高并发、高性能的场景下,可能需要考虑使用更强大的调度库,如`Quartz`或`Spring Framework`中的`ScheduledExecutorService`。