当前位置: 代码迷 >> Java相关 >> 对多个timer如何避免
  详细解决方案

对多个timer如何避免

热度:11   发布时间:2016-04-22 21:04:06.0
对多个timer如何处理
在做当前这个项目的时候,有个订阅功能会根据当前用户规定的时间可以是每天也可以是(例如周一三四六)这样来定时给用户发信息,但是如何来存储这个timer用户后面用户操作(删除),想过用静态map或者是存储到数据库。
问题1:timer如何完成开始时间周一下午3点之后周三四六下午3点执行方法
问题2:动态可能会在一分钟生成N多个timer,如何管理这些timer
------解决方案--------------------
多个的话得区分好,防止乱掉。
------解决方案--------------------
问题1:timer如何完成开始时间周一下午3点之后周三四六下午3点执行方法

这个,就一个timer好了,每天启动,在timer里判断当天是星期几,是否要执行,如果要,执行内容,如果不要,就跳过,timer完毕好了。比如

timer.schedule(new MyTimerTask(), date, 24 * 60 * 60 * 1000);

MyTimerTask类:

public class MyTimerTask extends TimerTask {
    public void run() {
        //现计算当天星期几
         //然后查询配置或数据库,看当天需要执行哪些任务
         if(有任务要运行){
             ......
        }
    }
}


第二个问题,没看明白
  相关解决方案