当前位置: 代码迷 >> Java Web开发 >> java如何根据用户设定的时间执行定时任务
  详细解决方案

java如何根据用户设定的时间执行定时任务

热度:232   发布时间:2016-04-16 21:44:29.0
java怎么根据用户设定的时间执行定时任务
大家好,现在有个需求。用户在页面设定时间,在次日的1点执行定时任务。看了Quartz和TimerTask,他们是根据当期时间然后设置一定的时间间隔来定时的执行任务。而现在只想在次日1点执行任务,而且只是执行1次,请问大家有什么好的办法?
------解决思路----------------------
你可以在不需要的时候销毁任务
------解决思路----------------------
引用:
Quote: 引用:



// 一天的毫秒数
 long daySpan = 24 * 60 * 60 * 1000;
 
 // 规定的每天时间15:33:30运行
 final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd '15:33:30'");
 // 首次运行时间
 Date startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));

 
 // 如果今天的已经过了 首次运行时间就改为明天
 if(System.currentTimeMillis() > startTime.getTime())
  startTime = new Date(startTime.getTime() + daySpan);
 
 Timer t = new Timer();
 
 TimerTask task = new TimerTask(){
  @Override
  public void run() {
   // 要执行的代码
   System.err.println("xxxxxxxxx");
  }
 };

 // 以每24小时执行一次
 t.scheduleAtFixedRate(task, startTime, daySpan);

请问如果只想执行一次的话怎么做?

t.scheduleAtFixedRate(task, startTime);)
------解决思路----------------------
quartz是有这个功能的...指定的日期跟时间  执行
 @Scheduled(cron="0 0 8 * * ?")  
  相关解决方案