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 定时的更多相关文章

  1. Spring Quartz定时调度任务配置

    applicationContext-quartz.xml定时调度任务启动代码: <?xml version="1.0" encoding="UTF-8" ...

  2. Spring—Quartz定时调度CronTrigger时间配置格式的实例

    格式说明:[秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小 ...

  3. Spring—Quartz定时调度CronTrigger时间配置格式说明与实例

    1 .CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 ...

  4. Quartz结合SPRING多任务定时调用

    定义两个被调度的类 public class QuartzJob { public void work() { System.out.println(Spring Quartz的任务调度1被调用!&q ...

  5. spring利用javamail,quartz定时发送邮件 <转>

    原文地址:spring利用javamail,quartz定时发送邮件 <转>作者:物是人非 spring提供的定时发送邮件功能,下面是一个简单的例子以供大家参考,首先从spring配置文件 ...

  6. Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群

    Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群 >>>>>>>>>>>>>> ...

  7. java Quartz定时器任务与Spring task定时的几种实现,

    java Quartz定时器任务与Spring task定时的几种实现 基于java 的定时任务实现, Quartz 时间详细配置    请查阅   http://www.cnblogs.com/si ...

  8. Spring+Quartz集群环境下定时调度的解决方案

    集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是 ...

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

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

随机推荐

  1. Vim进阶指南

    常用按键说明 按键 解释 移动光标 n+(Space) 向右移动n个字符 n+(Enter) 向下移动n行 nG 移动到第n行 gg 移动到第一行 G 移动到最后一行 0或Home键(Mac使用fn+ ...

  2. 在同一台服务器上启动多个 FreeSWITCH 实例

    有时候,需要用到多个FreeSWITCH进行测试,或者需要在一台服务器上部署多个“不兼容”的系统.我们在这一节探讨一下怎么做. 背景故事 几年前我还在Idapted工作的时候,由于需要连接Skype及 ...

  3. Vivado的helloword程序:硬件工程部分

    硬件平台:ZedBoard软件平台:vivado2013.3 本示例通过综合.实现,生成比特流,发送到SDK实现.启动vivado并且创建一个项目根据提示操作一步步创建新项目的时候记得选择RTL Pr ...

  4. Ubuntu 的 apt-get 代理设置(zhuan)

    url: http://qixinglu.com/post/ubuntu_apt-get_proxy_setup.html 升级到 Ubuntu10.04 后,发现 apt-get 的代理设置有改变了 ...

  5. 文件io之——read/write

    read函数从打开的设备或文件中读取数据. #include <unistd.h>ssize_t read(int fd, void *buf, size_t count);返回值:成功返 ...

  6. iOS swift 关于自定义表情键盘

    目录 输入框 键盘监听 键盘切换 表情装载 表情加载 表情输入 表情输出 表情显示 结束语 demo下载 demo图片: 输入框 为了让输入框能够随着用户输入内容变化自动变化高度,这里的输入框使用UI ...

  7. 利用docker搭建测试环境--安装

    软件测试过程中,总会碰到测试环境不够用的尴尬情况.即时有了机器还要经历装系统,配置环境,调试等一系列繁琐的问题.虽然市面上也有一些批处理话的工具(如salt,fabric等),但是还是需要实体机器作为 ...

  8. 【跟我一步一步学Struts2】——Struts2工作流程

    上一篇博客通过一个简单的小样例对struts2的流程有一个简单的了解,这篇博客继续. 当用户要登陆某一个站点.输入username,password,点击登陆就会触发以下一系列过程 : 1.请求过来之 ...

  9. chpasswd 更简单的更改密码的方式

    [root@m01 .ssh]# useradd test[root@m01 .ssh]# echo "test:123"|chpasswd Linux命令:chpasswd 批量 ...

  10. ddd 架构设计——abp

    一.为什么要分层 分层架构是所有架构的鼻祖,分层的作用就是隔离,不过,我们有时候有个误解,就是把层和程序集对应起来,就比如简单三层架构中,在你的解决方案中,一般会有三个程序集项目:XXUI.dll.X ...