📄 schedulermanager.java
字号:
package gov.gdlt.ssgly.taxcore.taxblh.htdl;
import java.util.Timer;
import java.sql.Time;
import java.util.Date;
import java.util.Calendar;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;
/**
*
* <p>Title: SchedulerManager</p>
*
* <p>Description: 后台代理程序自动执行的启动类,部署在weblogic的startup class中,
* 当weblogic启动的时候,该类也启动运行。该类将定时启动当天调度任务生成类和执行类,
* </p>
*
* <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
*
* <p>Company: 广州地税</p>
*
* @author 肖雪莲
* @version 1.0
*/
public class SchedulerManager {
private Timer timer;
public SchedulerManager() {
if(timer==null) {
timer = new Timer();
}
}
//定时启动相关类,定时参数放在配置文件中
//如果从web启动进程的话,调用此方法
public void runJob() {
//从配置文件中读取相关的参数,如任务启动时间,间隔时间
String tmp = ApplicationContext.singleton().getValueAsString(
ApplicationContext.HTDL_SCHEDULER_FIRSTTIME);
Time firstTime = Time.valueOf(tmp);
//比较现在的时间,如果今天的时间点已经pass的话,则设为明天
Calendar c2 = Calendar.getInstance(); //当前时间
LogWritter.sysDebug("系统时间: "+c2.getTime());
Calendar c1 =Calendar.getInstance(); //设定的时间
c1.setTimeInMillis(firstTime.getTime());
c1.set(Calendar.YEAR,c2.get(Calendar.YEAR));
c1.set(Calendar.MONTH,c2.get(Calendar.MONTH));
c1.set(Calendar.DAY_OF_MONTH,c2.get(Calendar.DAY_OF_MONTH));
LogWritter.sysDebug("设定的今天时间: "+c1.getTime());
if(c2.after(c1)){ //如果今天的时间点pass的话,则日期加1天
c1.add(Calendar.DATE,1);
LogWritter.sysDebug("启动时间: "+c1.getTime());
}
HTDLcreateDtrw createDtrw = new HTDLcreateDtrw();
HTDLexecDtrw execDtrw = new HTDLexecDtrw();
LogWritter.sysDebug(".......in SchedulerManager......");
// timer.schedule(createDtrw, c1.getTime(),ApplicationContext.HTDL_SCHEDULER_PERIOD);
// timer.schedule(execDtrw, c1.getTime(), ApplicationContext.HTDL_SCHEDULER_PERIOD);
timer.schedule(createDtrw, 0,ApplicationContext.HTDL_SCHEDULER_PERIOD);
timer.schedule(execDtrw,0, ApplicationContext.HTDL_SCHEDULER_PERIOD);
}
public void cancelJob() {
timer.cancel();
}
public Timer getTimer() {
return timer;
}
public void setTimer(Timer timer) {
this.timer = timer;
}
//如果从startup class启动进程的话,直接执行main
public static void main(String args[]) {
SchedulerManager c = new SchedulerManager();
c.runJob();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -