· spring定时控制器配置文件实现方式
一. 编写一个正常的业务类
public class SyncDataTaskTimer { private final static Logger log = Logger.getLogger(SyncDataTaskTimer.class); /** * 同步组织 */ public void syncOrg(){ log.info("同步组织:"+System.currentTimeMillis()); } /** * 同步用户 */ public void syncUser(){ log.info("同步用户:"+System.currentTimeMillis()); } }
二. applicationContext-task.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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:jee="http://www.springframework.org/schema/jee" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <!-- spring定时任务配置项 --> <bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"/> <!-- 同步ipm数据-定时任务配置 --> <bean id="syncDataTaskTimer" class="cn.chinaunicom.pmis.interfaces.ipm.server.task.SyncDataTaskTimer"/> <!-- 任务时间项配置 --> <task:scheduled-tasks> <task:scheduled ref="syncDataTaskTimer" method="syncOrg" cron="0 30 23 * * ?"/> <task:scheduled ref="syncDataTaskTimer" method="syncUser" cron="0 40 23 * * ?"/> </task:scheduled-tasks>
三. applicationContext.xml 引用
<!-- 支持自带定时任务配置 --> <import resource="applicationContext-task.xml" />
注:这里把spring的配置文件进行了拆分。
----------------------------------------分割线-----------------------------------------
· 难点解析
一. cron语法
<task:scheduled ref="syncDataTaskTimer" method="syncOrg" cron="0 30 23 * * ?"/>
cron="0 30 23 * * ?"意思为每天的23点30分执行一次。
cron语法使用和字符解释
cron的使用语法
* | * | * | * | * | * | [*] |
秒 | 分 | 时 | 日 | 月 | 周 | [年] |
时间: 2024-10-06 16:19:16