日期:2014-05-20  浏览次数:20676 次

java 定时任务的问题
求一个以月为单位的定时任务(比如每月的1号执行一次任务),非web应用,所以不能用spring 的quatz。

部分代码
 private static ScheduledExecutorService service = Executors.newScheduledThreadPool(3);

 service.scheduleWithFixedDelay(
                new AdminReqTask(), 1, periodtime, TimeUnit.SECONDS);

public class AdminReqTask implements Runnable { 

.......
.......

}

代码中的periodtime,不知道怎么办,因为一个月的时间不固定。求大神帮忙!先谢了

------解决方案--------------------
得到某个月的天数

      Calendar cal = Calendar.getInstance();

     int month=cal.getActualMaximum(Calendar.DAY_OF_MONTH);

这里有示例,你可以参考一下:
http://fulong258.blog.163.com/blog/static/1789504420071126102524419/
------解决方案--------------------
这个很简单啊,你的定时任务里面可以设置周期是一天,然后在任务的逻辑里面加入判断,如果当前日期是1号就继续执行调度任务,如果不是直接略过就可以了。