日期:2014-05-18  浏览次数:20753 次

java timer 怎么样能够重复利用
web项目已经基本建立好了
现在添加一个日程提醒的模块
里面定义每月执行一次的内容和仅仅执行一次的内容
每个日程都有自己执行的时间(执行时间精确到分钟就可以了)
日程定义在数据库中
在系统启动时我可以添加监听器读取数据库中全部的日程,并做提醒设置列表
我当然也可以同时开启N个定时器去执行每一个日程
但始终这样不太好,最好的解决方案是一个定时器,不断的去找最近一个需要执行的内容即可
所以有如下的问题就是
1.怎么样的代码能让某个定时器,按照每schule一次仅仅是执行最近的日程呢
2.数据库中的日程是可以变化的,那怎么维护定时器让它可以根据日程的提醒的变化而变化呢.(因为系统已经建立,请尽量不要说在日程提醒管理中激活一个什么标志或者信号之类的,个人不推荐对系统的"入侵")
希望大家轻点砸
timer 日程提醒

------解决方案--------------------
我们以前会做一个系统功能,专门管理同步程序,还有配置是手动执行还是自动执行。
------解决方案--------------------
想到个思路不晓得行不行:
java.util.Timer这个类有各种操作方式:定时、间隔时间操作。然后在具体任务里,查数据库做判断,再实现相关功能。
------解决方案--------------------
1.怎么样的代码能让某个定时器,按照每schule一次仅仅是执行最近的日程呢
你可以查看一下java.util.Timer这个类的源码,里面维护了一个任务优先级队列,最近的任务将最先执行

2.数据库中的日程是可以变化的,那怎么维护定时器让它可以根据日程的提醒的变化而变化呢.(因为系统已经建立,请尽量不要说在日程提醒管理中激活一个什么标志或者信号之类的,个人不推荐对系统的"入侵")

如果日程的提醒时间有变化,重新设置任务的提醒时间,然后调整任务优先级队列即可,API都提供了这些操作