当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

一个简单的Timer Service[Java编程]

赞助商链接



  本文“一个简单的Timer Service[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Web-TimeService用于按时调用(触发)利用,EJB2.1也供应了TimerService,但目前有的application server不支持,有的就根本没有效到ejb,所以我写了一个简单的TimerSerivce

Public class TimerService
{
 public static final long p = 1000*60*60;
  Timer timer = new Timer(false);
  TimerSchedule schedule = null;
 public TimerService()
 {
 }
 public void start() throws Exception
 {
  schedule = new TimerSchedule();
  schedule.addTimerJob(new SomeTimerJob());
  //add other job here
  timer.schedule(schedule,0,p);
 }
 public void stop() throws Exception
 {
  timer.cancel();
 }
}
//包含了多个TimerJob,并每到一按时刻取出来看看能否该调用
public class TimerSchedule extends TimerTask
{
 private List list = new ArrayList();
 public TimerSchedule()
 {}
 public void addTimerJob(TimerJob job)
 {
  list.add(job);
 }
 public void run()
 {
  Date now = Calendar.getInstance().getTime();
  Date next = null;
  for(int i=0;i<list.size();i++)
  {
   TimerJob job = (TimerJob)list.get(i);
   next = job.getNextExeDate();
   if(isEquals(now,next))
   {
    job.execute();
   }
  }
 }
/**
* 对比俩个时间相差能否小于TimerService.p(一个周期)
* @param now
* @param next
* @return
*/
private boolean isEquals(Date now,Date next)
{
 long time = next.getTime()-now.getTime();
 if (time <= TimerService.p && time >= 0)
 {
  return true;
 }
 else
 {
  return false;
 }
}
public boolean cancel()
{
 return true;
}
}
//该接口描写了若何完成TimerTask,请参考TimerJobExample
interface TimerJob
{
 public void execute();
 public Date getNextExeDate();
}
/**
* 该例子用于演示若何完成tiemrjob
* 该例子功效是在每天的清晨一点调用
*/
public class TimerJobExample implements TimerJob
{
 Calendar nextDate = null;
 public TimerJobExample()
 {
  nextDate = Calendar.getInstance();
  nextDate.add(Calendar.DAY_OF_MONTH,1);
  //将设置调用时间是(第二天的)每天清晨1点
  nextDate.set(Calendar.HOUR_OF_DAY,1);
 }
 public void execute()
 {
  nextDate.add(Calendar.DAY_OF_MONTH,1);
  nextDate.set(Calendar.HOUR_OF_DAY,1);
  callFunction();
 }
 public Date getNextExeDate()
 { 
  return nextDate.getTime();
 }
 private void callFunction()
 {
  System.out.println("TimerJobExample call ejb funcation:"+new Date());
 }
}


  以上是“一个简单的Timer Service[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Access 2000教程:1.5 一个简单的数据库
  • 一个简单的服务器和客户机程序
  • <b>操纵Java实现一个简单的递归算法的实例</b>
  • 一个简单的Timer Service
  • 用JBuilder7开辟一个简单的J2EE操纵
  • <b>一个简单的记事本代码(二)</b>
  • 一个简单的记事本代码(三)
  • <b>一个简单的记事本代码(一)</b>
  • [JAVA100例]050、一个简单的Web服务器
  • 一个简单的JAVA日历程序
  • 一个简单的CheckBox Tree实现
  • 用java实现一个简单的序列化的例子
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .