您的位置:首页 > 其它

有关定时的多种方式

2015-07-23 17:10 295 查看
一:前言

很久没有记载东西了,毕业回来之后一个多月都没怎么记载了,今天其实是很巧合的,本来很早以前写的一个定时器,在测试服务器上经常无缘无故的挂掉,进而使得整个服务器都挂掉了,上次弄的客户很不满意,老大就直接把我用quartz的定时器更改了,但是了我当时没怎么仔细看,然后今天我一个同学问我定时器怎么设置90分钟的,我说不行,然后我就想到我们的定时器改了,我就看了看代码,发现已经没有用我的quartz了,我就瞅了下代码。。。然后就。。。

二:定时的方式

(1)、quartz的定时方式,在我自己的博客里面记载的有,这种方式是需要数据库的。

(2)、spring task的方式,这个说白了就是交个spring来管理了,所以是不需要数据库的,配置的话差不多,都是大同小异。

(3)、Timer,这种方式我没有用过,但是我查找了一下,发现是通过监听器和定时器定时来完成某个任务的(http://www.blogjava.net/fastunit/archive/2008/02/15/180116.html)

三:应用

在使用(1)和(2)中有都有共同的区分

    A:org.springframework.scheduling.quartz.SimpleTriggerBean 这是代表每格指定的时间则触发一次。

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="job1" />
<property name="startDelay" value="0" /><!-- 调度工厂实例化后,经过0秒开始执行调度 -->
<property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 -->
</bean>


    B:org.springframework.scheduling.quartz.CronTriggerBean 这是代表每到指定时间触发一次,所以像是我们需要定时时间超过60分钟(比如想定时每90分钟执行一次的话就需要用A方式)

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="job1" />
<!—每天12:00运行一次 -->
<property name="cronExpression" value="0 0 12 * * ?" />
</bean>

字段名(项)  必须  值范围  特殊字符
秒 是 0-59  , - * /
分 是 0-59  , - * /
时 是 0-23  , - * /
月的某天  是 1-31  , - * ? / L W
月 是 1-12 or JAN-DEC  , - * /
星期的某天 是 1-7 or SUN-SAT  , - * ? / L #
年 否 empty, 1970-2099  , - * /


这篇文章记载的非常详细,觉得讲得不错,相当不错,可以借鉴下http://blog.csdn.net/wilsonke/article/details/26590379。

刚刚朋友又发现一种方式http://my.oschina.net/xldc/blog/297864

/**
* 定时卡点计算。每天凌晨 02:00 执行一次
*/
@Scheduled(cron = "0 0 2 * * *")
public void autoCardCalculate() {
System.out.println("定时卡点计算... " + new Date());
}

/**
* 心跳更新。启动时执行一次,之后每隔1分钟执行一次
*/
@Scheduled(fixedRate = 1000*60*1)
public void heartbeat() {
System.out.println("心跳更新... " + new Date());
}

/**
* 卡点持久化。启动时执行一次,之后每隔2分钟执行一次
*/
@Scheduled(fixedRate = 1000*60*2)
public void persistRecord() {
System.out.println("卡点持久化... " + new Date());
}


四:总结

最近转去做微信开发了,天天看了文档,微信文档最初看的挺迷迷糊糊的,分配的任务也是研究阿里云oss跨域上传文件下载文件,研究了好久好久,看文档都看了一个多星期,现在希望能把微信搞懂,多一个技能吧,咔咔咔咔咔咔咔。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: