weblogic定时启动程序

2012-06-26(Tuesday) 00:00

有个需求是要求程序在每天晚上3点钟的时候自动调用一个Job执行。

解决方案:定制weblogic的启动类,用来运行Job执行。

STEP1,启动类StartupTask:

public class StartupTask implements T3StartupDef {
public String startup(String name, Hashtable args) throws Exception {

Callplsql.main(null);

return "Callplsql Startup successful completed";
}

public void setServices(T3ServicesDef t3ServicesDef) {
}

} Callplsql.java(  即是JOB类,是需要被调用的,要继承TimerTask  )中的Main方法要有:

public static void main(String[] args) {
//任务执行间隔时间,默认24小时
long PERIOD_TIME=24*60*60*1000;
long delay=0;
//任务首次启动时间,默认零晨3点
Calendar end=Calendar.getInstance();
end.set(Calendar.HOUR_OF_DAY, 3);
end.set(Calendar.MINUTE, 0);
end.set(Calendar.SECOND, 0);
Calendar now=Calendar.getInstance();
delay=end.getTime().getTime()-now.getTime().getTime();
if(delay<=0){
delay=PERIOD_TIME+delay;
} System.out.println("当前时间:"+now.getTime());
System.out.println("首次启动SAP同步程序时间:"+end.getTime());
System.out.println("延时:"+delay+"毫秒启动SAP同步程序!");

//      待执行的任务
Timer time=new Timer();
Callplsql task=new Callplsql();
time.schedule(task,delay,PERIOD_TIME);

} 通过time.schedule每天零晨3:00循环调用JOB。

编译好StartupTask类后,要在weblogic控制台设置好启动类即可实现此需求。

Category: ADF Tagged: ADF