问题描述
程序采用SSH,现在想在程序启动后做一个Timer定时执行操作:例子:假如现在时间是:00:00从00:00开始,00:05,00:10,00:15,依次类推执行一个方法,每天都同样重复假如现在是12:23启动tomcat,那么12:25就要执行这个操作然后依次类推,不知道该用什么方式实现比较好?希望各位大大指点一二
解决方案
本帖最后由 san157239486 于 2015-02-01 04:01:26 编辑
解决方案二:
spring定时器
解决方案三:
spring定时器就可以了
解决方案四:
引用2楼magi1201的回复:
spring定时器就可以了
12:23启动tomcat,那么12:25就要执行这个操作然后依次类推,Spring定时器是固定每隔多少分钟,我这个是判断他的分钟尾数为0或者5才执行,该怎么写
解决方案五:
引用3楼san157239486的回复:
12:23启动tomcat,那么12:25就要执行这个操作然后依次类推,Spring定时器是固定每隔多少分钟,我这个是判断他的分钟尾数为0或者5才执行,该怎么写
你的定时器的定时规则是自己配置的嘛,在每次启动前手动配置一下开始时间久可以了。比如12:23要启动tomcat了,那么将定时器的开始时间配置为12:25就可以了,或者配置为12:30,然后每5分钟执行一次就OK了因为你是每五分钟执行一次,所以,想通过一次配置,然后解决每次启动后都能正常按点执行,可能是比较难的。
解决方案六:
弄一个线程,然后每次线程执行完就休眠5分钟这样的话要考虑一个问题,你是不是总共只有一个线程,线程总数会不会对系统造成压力
解决方案七:
你的意思是不管什么时候启动都是5分钟上执行,你可以看看spring定时器研究下Cron表达式<beanid="deleteExpireQianPiaoTime"class="org.springframework.scheduling.quartz.CronTriggerBean"><!--name为固定的ref引用上面的id标识要配置多长时间执行--><propertyname="jobDetail"ref="deleteExpireQianPiao"/><!--cron表达式--><!--每天晚上11点执行秒执行一次--><propertyname="cronExpression"value="0023**?"/></bean>也就是value的配置对于你的要求应该是可以实现的
解决方案八:
使用springschedule,还可以在类上直接用注解配置cron表达式哦!
解决方案九:
同意楼上的观点。我们自己做了一套定时组件,通过cron表达式可以配置具体的执行时间。譬如cron:001**?代表每天凌晨1点执行。可以深入研究一下,开发一套定时的组件。