当前位置: 代码迷 >> Java Web开发 >> timer.schedule 不能配备按月执行 哪位ggjj帮帮忙
  详细解决方案

timer.schedule 不能配备按月执行 哪位ggjj帮帮忙

热度:1853   发布时间:2013-02-25 21:12:04.0
timer.schedule 不能配置按月执行 哪位ggjj帮帮忙
Timer timer = new Timer();
tt = new SendMailTask();
Calendar cal = new GregorianCalendar(2012, 1, 26, 18, 23, 0);// 从2012年2月20号8点开始执行
Date date = cal.getTime();
System.out.println(date+"----------------dat4e-------------------------");
timer.schedule(tt, date);//8点后,每24小时执行一次
System.out.println("-------------------startdate----------------------------");

(1)Timer.schedule(TimerTask task,Date time)安排在制定的时间执行指定的任务。
(2)Timer.schedule(TimerTask task,Date firstTime ,long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行.
(3)Timer.schedule(TimerTask task,long delay)安排在指定延迟后执行指定的任务.
(4)Timer.schedule(TimerTask task,long delay,long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行.
(5)Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)安排指定的任务在指定的时间开始进行重复的固定速率执行.
(6)Timer.scheduleAtFixedRate(TimerTask task,long delay,long period)安排指定的任务在指定的延迟后开始进行重复的固定速率执行.

要实现一个定时邮件功能 就用了这个 结果发现不能按月或者按星期执行(就是指定在每个月的某天的某个点执行,我的意思是部署后每个月那一天的那个时间点都要执行一次) 小弟 尝试解决失败 各位大大帮帮忙

------解决方案--------------------------------------------------------
看看Qutarz框架行不
------解决方案--------------------------------------------------------
简单的处理办法,比如要定为每月的1日执行:
Timer timer = new Timer();
timer.schedule(new MyTimerTask(), date, 24 * 60 * 60 * 1000);

先配置成每天运行,在MyTimerTask里检查日期是否是1号,如果是则执行任务,如果不是就退出。
  相关解决方案