java web系统定时执行任务

web.xml监听


<listener>
    <listener-class>
      com.ow.cms.commons.ContextListener
    </listener-class>
    </listener>  







package com.ow.cms.commons;


import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;


public class ContextListener extends HttpServlet implements ServletContextListener{

Timer timer = new Timer();


Date operTime;
public void service(ServletRequest request, ServletResponse response)
    throws ServletException, IOException {//
    }
@Override
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("\n 执行应用监听器结束方法       destory context....");
  timer.cancel();
}


@Override
public void contextInitialized(ServletContextEvent sce) {

/* // TODO Auto-generated method stub
  System.out.println("\n 执行应用监听器初始方法      initialcontext....");
  Calendar now=Calendar.getInstance();
  now.add(Calendar.DATE,0);
  now.set(Calendar.HOUR_OF_DAY, 14);
  now.set(Calendar.MINUTE, 56);
  now.set(Calendar.SECOND, 0);
  now.set(Calendar.MILLISECOND, 0);
  //log.info("\n时间now为:   "+now.toString()+"     毫秒数:"+now.getTimeInMillis());
  System.out.println("\n时间now为:"+now.getTime().toString()+"毫秒数:"+now.getTimeInMillis());
  operTime=new Date(now.getTimeInMillis());
  //log.info("\n预设初始执行时间为:   "+operTime);
  System.out.println("\n预设初始执行时间为:"+operTime);
 // timer.scheduleAtFixedRate(new FinDataTimerTask(), delay, period)
 // timer.schedule(new FinDataTimerTask(),operTime, 86400000); //一天执行一次
  timer.schedule(new Task(),operTime, 100000);   //10秒钟执行一次,调试可用
*/

Date d = new Date();//获取服务器的时间。。。
Calendar c= Calendar.getInstance();
c.setTime(d);


if(c.get(Calendar.SECOND) == 30)  //当前是1号
{
System.out.println("目前是半分钟");
}
else     //当前不是  则从下个 开始执行定期任务
{


c.set(Calendar.MINUTE,c.get(Calendar.MINUTE)+ 1);//设置为下
c.set(Calendar.SECOND,0);//设置为下月的1号


Timer timer =new Timer();


timer.scheduleAtFixedRate(new Task()
{
 public void run(){
   //每天都来判断一下  如果当前日期是1号
   则拿出党员的入党日期(年月)同当前月进行比较 如果相同 发送短信
   //run函数里写下你的判断代码
 System.out.println("你好!");
 }},c.getTime(),60000);  //每天执行一次run()方法...
}






}
 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值