- 记录Spring schedule相关的学习资料
- 其中主要注意cron的写法+配置文件怎么配置的问题
CRON expression
- https://en.wikipedia.org/wiki/Cron#CRON_expression
- 这个主要是讲标准unix的
- http://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html
- 这个主要讲quartz中的cron的使用
- cron本义是个时间单位,百万年;延伸意有计划任务的意思
- unix的一个标准
- 在quartz中被扩展了seconds,同样spring-task cron
- 其实主要是定义了一个task trigger的time collection
配置schedule
文档
- http://docs.spring.io/spring/docs/4.2.5.RELEASE/spring-framework-reference/html/scheduling.html
- 参考33.5.3即可
- executor就是个pool
- trigger就是触发点啊
- quartz
完整spring配置文件demo
要注意schema+cron表达式写法
<?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:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd">
<!-- drs module schedule task -->
<!-- 配置具体任务 -->
<task:scheduled-tasks scheduler="baseScheduler">
<!-- 第0min0sec开始,每隔10min跑一次 -->
<task:scheduled ref="licenseModuleService"
method="checkLicenses" cron="0 0/10 * * * *" />
<!-- 0min0sec开始,每10min一次 -->
<task:scheduled ref="monNotificationModuleService"
method="checkMonNotification" cron="0/30 * * * * *" />
<!-- 任意min0sec开始,每30min一次,具体参考cron配置吧,比较复杂 -->
<task:scheduled ref="systemConfigModuleService"
method="clearSystemLogs" cron="0 */30 * * * *" />
<task:scheduled ref="securityPolicyModuleService"
method="clearCacheByLockoutPolicy" cron="7 */1 * * * *" />
<!-- fixed是周期,initial是开始时间,单位是毫秒 -->
<task:scheduled ref="drsStrategyProcess"
method="invoke" fixed-delay="600000" initial-delay="600000" />
<!-- 固定15sec -->
<task:scheduled ref="thaHtSender" method="send"
fixed-rate="15000" />
</task:scheduled-tasks>
<task:scheduler id="baseScheduler" pool-size="10" />
<!-- may be used in future -->
<!-- 这里不配置,也可以运行,跟scheduler好像是重复的 -->
<!-- <task:executor id="baseExecutor" pool-size="5" /> -->
<!-- <task:annotation-driven executor="baseExecutor" scheduler="baseScheduler"/> -->
</beans>