免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1697 | 回复: 0
打印 上一主题 下一主题

j2ee:listener学习笔记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-05 14:21 |只看该作者 |倒序浏览
listener学习笔记
2007-4-4 03:02下午
web.xml
  
    cn.com.yitong.rerport.TimerListener.TimerListener
    cn.com.yitong.rerport.orgtree.OrganListener
  



  ackage cn.com.yitong.rerport.orgtree;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.*;
public class OrganListener implements ServletContextListener
{
    private Timer timer = null;
    SampleTask sampleTask;        //封装的继承TimerTask的类
    public void contextInitialized(ServletContextEvent event)
    {
        timer = new java.util.Timer(true);
/*        Calendar c = Calendar.getInstance();    //得到时间对像
        c.set(Calendar.HOUR_OF_DAY,23);
        c.set(Calendar.MINUTE,27);
        c.set(Calendar.SECOND,40);
        Date date = c.getTime();    //设定时间为23点43分0秒
*/
      
        sampleTask = new SampleTask(event.getServletContext());        //实例化封装类
        event.getServletContext().log("准备加载机构");   
//        timer.schedule(sampleTask,date);        //调用timer类的shcedule(定时调用)方法,第一个参数为继承TimerTask类的对像,第二个参数是设定的时间
        timer.schedule(sampleTask,0,60*60*1000);
        event.getServletContext().log ("准备加载机构就绪"); //每隔一个小时执行任务,第一个参数为继承TimerTask类的对像,第二个参数为执行任务前等待时间,此处0表示不等待,第三个参数为间隔时间,单位为毫秒
    }
    public void contextDestroyed(ServletContextEvent event)
    {
        // todo auto-generated method stub
        timer.cancel();
        event.getServletContext().log("定时器销毁");
    }
}
===========================================================
package cn.com.yitong.rerport.TimerListener;
import javax.servlet.ServletContext;
import cn.com.yitong.rerport.dao.CallProcDao;
import java.util.TimerTask;
import java.util.*;
public class SampleTask extends TimerTask{
      private ServletContext context;
      private static boolean isRunning = false;
      private static boolean flag = true;
      private static final int C_SCHEDULE_HOUR = 6;    //定时6点
      public SampleTask(ServletContext context)
      {
          this.context = context;
      }
      public void run()
      {
          Date d = new Date();
          if (!isRunning)
          {
              isRunning = true;        //执行时将是否执行的状态改变为true
              if (C_SCHEDULE_HOUR == d.getHours()) //判断是否到时
              {
                      try
                      {
                          CallProcDao cpd = new CallProcDao();    //生成执行存储过程对像
                          cpd.CallProc("system","3400008888");
                          cpd.daoClose();
                      }
                      catch(Exception e)
                    {
                          e.printStackTrace();
                    }     
              }
              isRunning = false;    //执行完毕将状态改变为false
          } else
          {
              context.log("上一次任务执行还未结束");
          }
        }
    }


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/88379/showart_2086998.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP