求一个以月为单位的定时任务(比如每月的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号就继续执行调度任务,如果不是直接略过就可以了。