一个简单的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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |