📄 htdlexecdtrwbyfz.java
字号:
}
// return result; //需要对result做进一步的分析:全部执行成功,部分执行成功(成功的记录数),执行完全失败
}
//逐条取出属于该分组的任务执行,这样可以通过控制“当天任务表”中的任务来取消某些任务的执行, for test
public void executeDtrwByFz1() {
try {
//根据fzxx参数,取得属于该分组的所有任务
// LogWritter.sysDebug(HTDLexecDtrw.class.getName() + "开始获取属于" + this.fz +
// "分组的任务!");
HTDLdtrwlbDAO dtrwDAO = new HTDLdtrwlbDAO();
HTDLreturnVO retVO = new HTDLreturnVO();
HTDLybsdsrwDAO ybsrwDAO = new HTDLybsdsrwDAO();
java.sql.Timestamp dtBefore;
java.sql.Timestamp dtAfter;
ArrayList dtrwList = (ArrayList) dtrwDAO.getOneDtrwByFz(this.fz);
while (dtrwList.size()!=0) {
HTDLdtrwVO dtrwVO = (HTDLdtrwVO) dtrwList.get(0);
String rwxh = dtrwVO.getRw_xh();
LogWritter.sysDebug(HTDLexecDtrw.class.getName() + "开始执行" +
dtrwVO.getRw_xh() + "号任务:" + dtrwVO.getDyjk());
dtBefore = new java.sql.Timestamp(System.currentTimeMillis());
//执行任务
//更新任务状态为执行中("1")
dtrwDAO.updateZt("1", rwxh);
//插日志Log,提示任务执行中
HTDLzxlogDAO zxlogDAO = new HTDLzxlogDAO();
HTDLzxqkVO zxqkVO = new HTDLzxqkVO();
zxqkVO.setLrry_dm(dtrwVO.getLrry_dm());
zxqkVO.setRw_xh(dtrwVO.getRw_xh()); //任务序号
zxqkVO.setRw_mc(dtrwVO.getRw_mc());
zxqkVO.setBlh_mc(dtrwVO.getBlh_mc()); //业务逻辑名称
zxqkVO.setBczx_qssj(dtBefore);
zxqkVO.setZxjg("1"); //执行结果
zxqkVO.setJgms("执行参数:" + dtrwVO.getCsl()); //结果描述
String log_xh = zxlogDAO.insertNewLog(zxqkVO);
if (HTDL_SXLX_PROC.equals(dtrwVO.getSx_lx())) { //该任务是存储过程
retVO = executeProc(dtrwVO.getDyjk(), dtrwVO.getCsl());
} else if (HTDL_SXLX_JAVA.equals(dtrwVO.getSx_lx())) { //该任务是Java类
retVO = executeJavaClass(dtrwVO.getDyjk(), dtrwVO.getCsl());
} else {
retVO.setStatus("-1");
retVO.setDetail("未知的实现类型");
}
dtAfter = new java.sql.Timestamp(System.currentTimeMillis());
LogWritter.sysDebug("执行结果--状态:" + retVO.getStatus() + "描述:" +
retVO.getDetail());
if (retVO.getDetail() == null) {
retVO.setDetail("未提供执行结果的描述");
}
//更新日志
zxqkVO.setLog_xh(log_xh);
zxqkVO.setBczx_zzsj(dtAfter);
zxqkVO.setZxjg(retVO.getStatus()); //执行结果
zxqkVO.setJgms("执行参数:" + dtrwVO.getCsl() + ".结果:" + retVO.getDetail()+"(自动调度)"); //结果描述
zxlogDAO.updateZxlog(zxqkVO);
//如果执行成功的话,更新已部署任务列表中相应的上次成功执行时间 mod
if (retVO.getStatus().equals("0")) {
ybsrwDAO.updateSccg_sj(rwxh, dtAfter);
}
//更新“当天任务列表”中该任务的当前状态为“执行完毕(2)”mod
dtrwDAO.updateZt("2", rwxh);
LogWritter.sysDebug("任务:" + dtrwVO.getRw_xh() +
dtrwVO.getBlh_mc() + "执行完毕!");
//取下一条未执行的任务
dtrwList = (ArrayList) dtrwDAO.getOneDtrwByFz(this.fz);
}
} catch (SQLException e) {
e.printStackTrace();
LogWritter.sysError(e.toString());
} catch (Exception e) {
e.printStackTrace();
LogWritter.sysError(e.toString());
}
}
//逐条取出属于该分组的任务执行,同时锁定该条记录,并更新该记录为执行中
public void executeDtrwByFz_synchronize() {
try {
//根据fzxx参数,取得属于该分组的所有任务
// LogWritter.sysDebug(HTDLexecDtrw.class.getName() + "开始获取属于" + this.fz +
// "分组的任务!");
HTDLdtrwlbDAO dtrwDAO = new HTDLdtrwlbDAO();
HTDLreturnVO retVO = new HTDLreturnVO();
HTDLybsdsrwDAO ybsrwDAO = new HTDLybsdsrwDAO();
java.sql.Timestamp dtBefore;
java.sql.Timestamp dtAfter;
// ArrayList dtrwList = (ArrayList) dtrwDAO.getOneDtrwByFz(this.fz);
//取出第一条未执行的任务,同时更新该任务的状态为“执行中。。。”(1)
HTDLdtrwVO dtrwVO = dtrwDAO.getOneDtrwByFz_synchronize(this.fz);
System.out.println("=============just before while!=================");
while (dtrwVO != null) {
System.out.println("=============in while first!=========================");
// HTDLdtrwVO dtrwVO = (HTDLdtrwVO) dtrwList.get(0);
String rwxh = dtrwVO.getRw_xh();
LogWritter.sysDebug(HTDLexecDtrw.class.getName() + "begin to execute the task:" +
dtrwVO.getRw_xh() + "--" + dtrwVO.getDyjk());
System.out.println("begin to execute the task:" +
dtrwVO.getRw_xh() + "--" + dtrwVO.getDyjk());
dtBefore = new java.sql.Timestamp(System.currentTimeMillis());
//执行任务
//更新任务状态为执行中("1")
// dtrwDAO.updateZt("1", rwxh); 放在getOneDtrwByFz中更改
//插日志Log,提示任务执行中
HTDLzxlogDAO zxlogDAO = new HTDLzxlogDAO();
HTDLzxqkVO zxqkVO = new HTDLzxqkVO();
zxqkVO.setLrry_dm(dtrwVO.getLrry_dm());
zxqkVO.setRw_xh(dtrwVO.getRw_xh()); //任务序号
zxqkVO.setRw_mc(dtrwVO.getRw_mc());
zxqkVO.setBlh_mc(dtrwVO.getBlh_mc()); //业务逻辑名称
zxqkVO.setBczx_qssj(dtBefore);
// zxqkVO.setBczx_zzsj(dtAfter);
zxqkVO.setZxjg("1"); //执行中
zxqkVO.setJgms("执行参数:" + dtrwVO.getCsl()); //结果描述
String log_xh = zxlogDAO.insertNewLog(zxqkVO);
System.out.println("insert a new log "+log_xh+".....");
System.out.println("begin to call interface....");
if (HTDL_SXLX_PROC.equals(dtrwVO.getSx_lx())) { //该任务是存储过程
retVO = executeProc(dtrwVO.getDyjk(), dtrwVO.getCsl());
} else if (HTDL_SXLX_JAVA.equals(dtrwVO.getSx_lx())) { //该任务是Java类
retVO = executeJavaClass(dtrwVO.getDyjk(), dtrwVO.getCsl());
} else {
retVO.setStatus("-1");
retVO.setDetail("未知的实现类型");
}
dtAfter = new java.sql.Timestamp(System.currentTimeMillis());
LogWritter.sysDebug("执行结果--状态:" + retVO.getStatus() + "描述:" +
retVO.getDetail());
System.out.println("return from call interface......");
if (retVO.getDetail() == null) {
retVO.setDetail("未提供执行结果的描述");
}
//更新日志
System.out.println("update the log "+log_xh);
zxqkVO.setLog_xh(log_xh);
zxqkVO.setBczx_zzsj(dtAfter);
zxqkVO.setZxjg(retVO.getStatus()); //执行结果
zxqkVO.setJgms("执行参数:" + dtrwVO.getCsl() + ".结果:" + retVO.getDetail()+"(自动调度)"); //结果描述
zxlogDAO.updateZxlog(zxqkVO);
//如果执行成功的话,更新已部署任务列表中相应的上次成功执行时间 mod
if (retVO.getStatus().equals("0")) {
ybsrwDAO.updateSccg_sj(rwxh, dtAfter);
}
//更新“当天任务列表”中该任务的当前状态为“执行完毕(2)”mod
dtrwDAO.updateZt("2", rwxh);
LogWritter.sysDebug("Task:" + dtrwVO.getRw_xh() +
dtrwVO.getBlh_mc() + " end of execution!");
System.out.println("Task:" + dtrwVO.getRw_xh() +
dtrwVO.getBlh_mc() + " end of execution!");
//取下一条未执行的任务
// dtrwList = (ArrayList) dtrwDAO.getOneDtrwByFz(this.fz);
System.out.println("get the next task.......");
dtrwVO = dtrwDAO.getOneDtrwByFz_synchronize(this.fz);
}
System.out.println("=================All tasks in fz:"+fz+" are end of execution!=============");
} catch (SQLException e) {
e.printStackTrace();
LogWritter.sysError(e.toString());
} catch (Exception e) {
e.printStackTrace();
LogWritter.sysError(e.toString());
}
}
//执行所属分组fz中的任务
public void run() {
// executeDtrwByFz();
// executeDtrwByFz1();
executeDtrwByFz_synchronize();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -