今天要写一个订单的过期处理功能,暂时没想到什么更好的办法。项目借助spring来开发,就暂时用spring里面的定时任务调度来写下吧。搜了一下,就是些配置而已,比较简单。
首先在xml里引用一下,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:task="http://www.springframework.org/schema/task" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">
就是上面的
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
spring3以后加入定时任务比较容易了,任务类就是一个pojo。下面是任务类:
package com.jeanselam.service;
/**
* @author lin
*
*/
public class TimerTaskServcie {
/**
* 注入业务组件
*/
/**
* 定时任务,检查未处理订单
*/
public void scanOrder()
{
// System.out.println("执行定时任务......");
/**
* 处理过期订单
*/
}
}
配置任务类:
<!-- 定时任务执行 -->
<bean id="timerTaskServcie" class="com.jeanselam.service.TimerTaskServcie">
<!-- <property name="orderService" ref="orderServiceImpl"/> -->
</bean>
<task:scheduled-tasks>
<task:scheduled ref="timerTaskServcie" method="scanOrder" cron="0 44 21 * * ?" /><!-- 这里是每天晚上9点44分触发任务 -->
</task:scheduled-tasks>
配置触发时间的规则,google一下吧:
CRON表达式 含义 ,下面是一些例子:
"0 0 12 * * ?" 每天中午十二点触发
"0 15 10 ? * *" 每天早上10:15触发
"0 15 10 * * ?" 每天早上10:15触发
"0 15 10 * * ? *" 每天早上10:15触发
"0 15 10 * * ? 2005" 2005年的每天早上10:15触发
"0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发
"0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发
"0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发