spring + quartz 定时
springConfig配置文件:
<?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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory"
ref="entityManagerFactory" />
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 启用支持Annotation注解方式的事务管理 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 把标记了@Controller等注解的类转换为bean -->
<context:component-scan base-package="com.qdshop" /> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> -->
<!--文件上传设置-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>10485760</value><!-- 文件上传最大为10M -->
</property>
<property name="maxInMemorySize" value="4096" />
</bean>
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean id="velocityCongfig"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath">
<value>/</value>
</property>
<property name="velocityProperties">
<props>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding ">UTF-8</prop>
</props>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.velocity.VelocityView" />
<property name="contentType">
<value>text/html;charset=UTF-8</value>
</property>
</bean>
<!-- property-placeholder是一个属性遍历器,定位一个属性文件,属性文件存放的是jdbc一些连接数据 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!--配置velocity engine默认路径-->
<bean id="velocityEngine"
class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="/velocity/"></property>
</bean>
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="initialSize" value="${initialSize}" />
<property name="maxActive" value="${maxActive}" />
<property name="maxIdle" value="${maxIdle}" />
<property name="minIdle" value="${minIdle}" />
</bean>
<bean name="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation"
value="classpath:persistence.xml" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL" />
<property name="showSql" value="true" />
<property name="generateDdl" value="false" />
</bean>
</property>
<property name="jpaProperties">
<props>
<!-- 自定义方言 -->
<prop key="hibernate.dialect">
com.qdshop.core.dialect.SystemMySQL5Dialect
</prop>
<!-- 二级缓存配置 -->
<prop key="hibernate.cache.provider_class">
net.sf.ehcache.hibernate.SingletonEhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">
true
</prop>
<prop key="hibernate.use_sql_comments">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.generate_statistics">true</prop>
</props>
</property>
</bean>
<!-- 定义了与实体相关的dao -->
<bean id="genericEntityDao"
class="com.qdshop.core.base.GenericEntityDao" scope="prototype"
lazy-init="true">
<property name="entityManagerFactory"
ref="entityManagerFactory" />
</bean>
<!--使用泛型DAO作为抽象基类 abstract="true" -->
<bean id="genericDAO" class="com.qdshop.core.base.GenericDAO"
abstract="true" depends-on="genericEntityDao">
<property name="geDao">
<ref bean="genericEntityDao" />
</property>
</bean>
<!-- 系统调度控制器 -->
<bean id="statTask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="shop_stat" />
<!-- 调用类中的方法 -->
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="stat_cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="statTask" />
<property name="cronExpression" value="0 */30 * * * ?" />
</bean>
<bean id="jobTask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="shop_job" />
<!-- 调用类中的方法 -->
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="job_cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobTask" />
<property name="cronExpression" value="1 0 0 * * ?" />
</bean>
<bean id="orderJobTask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="order_job" />
<!-- 调用类中的方法 -->
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="orderJob_cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="orderJobTask" />
<property name="cronExpression" value="0/10 * * * * ?" />
</bean>
<bean id="schdulerFactory" lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="stat_cronTrigger" />
<ref bean="job_cronTrigger" />
<ref bean="orderJob_cronTrigger" />
</list>
</property>
</bean>
<bean id="sensitiveWordInitUtil" class ="com.qdshop.sensitive.util.SensitiveWordInitUtil" scope="singleton" init-method="initKeyWord">
<property name="xmlFile">
<value>classpath:sensitive-word.xml</value>
</property>
</bean>
<!-- Loads MongoDB configuraton -->
<import resource="mongo-config.xml"/>
</beans>
定时执行类
package com.qdshop.manage.timer; import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set; import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.zookeeper.Op.Delete;
import org.hibernate.annotations.Where;
import org.hibernate.sql.Update;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import com.qdshop.core.tools.CommUtil;
import com.qdshop.foundation.domain.ApplyRefund;
import com.qdshop.foundation.domain.Complaint;
import com.qdshop.foundation.domain.Evaluate;
import com.qdshop.foundation.domain.OrderForm;
import com.qdshop.foundation.domain.OrderFormLogBean;
import com.qdshop.foundation.domain.Quartz;
import com.qdshop.foundation.domain.User;
import com.qdshop.foundation.service.IApplyRefundService;
import com.qdshop.foundation.service.IComplaintService;
import com.qdshop.foundation.service.IEvaluateService;
import com.qdshop.foundation.service.IOrderFormLogService;
import com.qdshop.foundation.service.IOrderFormService;
import com.qdshop.foundation.service.IQuartzService;
import com.qdshop.foundation.service.ISysConfigService;
import com.qdshop.foundation.service.ITemplateService;
import com.qdshop.foundation.service.IUserService;
import com.qdshop.manage.admin.tools.MsgTools;
import com.sun.org.apache.xpath.internal.operations.And; /**
* @ClassName: OrderJobManageAction
* @Description: 订单相关定时任务
* @author
* @date 2016-5-7 下午5:45:43
*
*/
@SuppressWarnings({"rawtypes","unchecked","unused"})
@Component("order_job")
public class OrderJobManageAction {
@Autowired
private ISysConfigService configService; //投诉接口
@Autowired
private IComplaintService complaintService; @Autowired
private MsgTools msgTools; public void execute() throws Exception{
Calendar cal = null;
Map params = new HashMap();
List<Quartz> quartzs=new ArrayList<Quartz>();
List<ApplyRefund> applyRefunds=new ArrayList<ApplyRefund>();
/**订单超过X天未付款,自动取消**/
int auto_order_cancel = this.configService.getSysConfig().getAuto_order_cancel();
cal = Calendar.getInstance();
params.clear();
cal.add(6, -auto_order_cancel);
params.put("order_time", cal.getTime());
params.put("order_status", Integer.valueOf(1));//未付款
List<OrderForm> cancel_ofs = this.orderFormService
.query("select obj from OrderForm obj where obj.order_time<=:order_time and obj.order_status=:order_status", params, -1, -1);
for (OrderForm of : cancel_ofs){
//订单取消
of.setOrder_status(10);
this.orderFormService.update(of);
} } /**
*
* 功能描述:根据传入name,查询出value值
* 创建人:
* 创建日期:2016年7月28日
* @param name
* @return
*/
private List<Quartz> getQuartzList(String name){
Map map = new HashMap();
map.put("name", name);//取确认订单值
List<Quartz> quartzs=this.quartzService.query("select obj from Quartz obj where obj.name=:name", map, -1, -1);
return quartzs;
} }
spring + quartz 定时的更多相关文章
- Spring Quartz定时调度任务配置
applicationContext-quartz.xml定时调度任务启动代码: <?xml version="1.0" encoding="UTF-8" ...
- Spring—Quartz定时调度CronTrigger时间配置格式的实例
格式说明:[秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小 ...
- Spring—Quartz定时调度CronTrigger时间配置格式说明与实例
1 .CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 ...
- Quartz结合SPRING多任务定时调用
定义两个被调度的类 public class QuartzJob { public void work() { System.out.println(Spring Quartz的任务调度1被调用!&q ...
- spring利用javamail,quartz定时发送邮件 <转>
原文地址:spring利用javamail,quartz定时发送邮件 <转>作者:物是人非 spring提供的定时发送邮件功能,下面是一个简单的例子以供大家参考,首先从spring配置文件 ...
- Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群
Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群 >>>>>>>>>>>>>> ...
- java Quartz定时器任务与Spring task定时的几种实现,
java Quartz定时器任务与Spring task定时的几种实现 基于java 的定时任务实现, Quartz 时间详细配置 请查阅 http://www.cnblogs.com/si ...
- Spring+Quartz集群环境下定时调度的解决方案
集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是 ...
- Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置
Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置 >>>>>>>>>>>>&g ...
随机推荐
- 浅谈ThreadPool 线程池(引用)
出自:http://www.cnblogs.com/xugang/archive/2010/04/20/1716042.html 浅谈ThreadPool 线程池 相关概念: 线程池可以看做容纳线程的 ...
- mongodb - 查看正在执行的操作
查看正在执行的操作 db.currentOp() 查看系统执行的操作 db.currentOp(True) kill正在执行的操作 db.killOp(<operation id>) 示例 ...
- Python -面向对象(一 基本概念)
一 Python简单介绍 Python是一个可移植的面向对象的脚本语言. Python尽管是一个脚本语言,但也是一个全然面向对象的语言.由于它设计之初把易用性做为很重要的一个考量标准,所以用起来很简洁 ...
- django学习笔记【001】django版本的确定&创建一个django工程
2.3 查看当前的django版本 python3. -m django --version 2.3.1 创建一个django工程 django-admin startproject mysite 在 ...
- SET IDENTITY_INSERT <Table Name> ON/OFF 转载
This command is from SQL Server. This command is to enable the users to set their own value for IDE ...
- RCU
RCU(read-copy-update)同步机制.R(Read):读者不需要获得任何锁就可访问RCU保护的临界区:C(Copy):写者在访问临界区时,写者“自己”将先拷贝一个临界区副本,然后对副本进 ...
- PHPEXCEL在thinkphp中封装成类使用
PHPEXCEL在thinkphp中封装成类使用 标签: phpexcel导出导入thinkphp -- : 435人阅读 评论() 收藏 举报 分类: php() 版权声明:本文为博主原创文章,未经 ...
- Python3.0+Selenium3进行Web自动化遇到的坑
1.搭建环境时,已经把chromedriver的路径加入到PATH,但是还是报错说需要加入PATH.此时重新启动下Pycharm即可
- jquery仿jquery mobile的select控件效果
不说废话.直接上代码 //仿jQuery mobile Select控件 //使用方法box为容器id,_id指控件id,selectvalue为选中值,Value为当前值 function Sele ...
- The Definitive Guide To Django 2 学习笔记(五) 第四章 模板 (一)基本模板系统
引入模板系统的原因,view中引入硬编码并非明智的选择,设计上的任何改变都会需要改动代码.python代码和HTML代码应该分开,这是多数Web站点的共识,分开会提高效率. 基本模板系统 Django ...