📄 htdlexecdtrwmultithread.java
字号:
package gov.gdlt.ssgly.taxcore.taxblh.htdl;
import java.util.TimerTask;
import gov.gdlt.ssgly.taxcore.taxdao.htdl.HTDLdtrwlbDAO;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import java.util.ArrayList;
import java.sql.Timestamp;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;
import gov.gdlt.ssgly.taxcore.taxevent.htdl.*;
/**
*
* <p>Title: 以多线程的方式执行当天任务别表中的任务(根据分组情况来分线程)</p>
*
* <p>Description: 广东地税税收管理员工作平台</p>
*
* <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
*
* <p>Company: 广州地税</p>
*
* @author 肖雪莲
* @version 1.0
*/
public class HTDLexecDtrwMultiThread extends TimerTask {
private static boolean isRunning = false;
public HTDLexecDtrwMultiThread() {
}
//对当天任务列表中的所有任务按照分组顺序执行,多线程
//flag为true的话,则在执行前重新生成当天任务列表中的任务
public int executeDtrwMutiThread(boolean flag) throws Exception {
int result = ApplicationContext.RET_SUCCESS;
try {
HTDLdtrwlbDAO dtrwDAO = new HTDLdtrwlbDAO();
if (flag) {
//生成当天的任务列表,测试的时候注释
HTDLreturnVO retVO = new HTDLreturnVO();
System.out.println("=================run in the dtrwDAO:createDtrw============================");
dtrwDAO.createDtrw(retVO);
// dtrwDAO.createDtrw_synchronize(retVO);
LogWritter.sysDebug("the return values in createDtrw: status-" + retVO.getStatus() +
",details-" + retVO.getDetail());
System.out.println("=============="+"the return values in createDtrw: status-" + retVO.getStatus() +
",details-" + retVO.getDetail()+"==================");
}
// LogWritter.sysDebug("==get the number of fz from db...==");
ArrayList fzxxList = (ArrayList) dtrwDAO.selectFzxx();
System.out.println("========get the number of fz from db...=="+fzxxList.size());
//多线程顺序执行
for (int i = 0; i < fzxxList.size(); i++) {
// executeHtrwbyFz((String) fzxxList.get(i));
// LogWritter.sysDebug("current fz :" + fzxxList.get(i)+" "+i);
System.out.println("current fz :" + fzxxList.get(i)+" "+i);
HTDLexecDtrwByFz execDtrwByFz = new HTDLexecDtrwByFz((String)
fzxxList.get(i));
execDtrwByFz.start();
}
} catch (Exception e) {
LogWritter.sysDebug(e.toString());
}
return result;
}
//把要执行的功能放在该方法中,相当于main方法
public void run() {
try {
HTDLdtrwlbDAO dtrwDAO = new HTDLdtrwlbDAO();
// int result = dtrwDAO.countDtrwbyZt("1", null); //"1"表示执行中,查看是否存在未执行完毕的任务
int result = 0; //for test
if (result != 0) {
isRunning = true;
} else {
isRunning = false;
}
if (!isRunning) {
isRunning = true;
LogWritter.sysInfo("begin to execute the Dtrw!");
executeDtrwMutiThread(true); //重新生成当天任务,并执行
isRunning = false;
LogWritter.sysInfo("end of execution of the Dtrw!");
} else {
LogWritter.sysInfo("上一次任务执行还未结束!");
}
} catch (Exception e) {
// e.printStackTrace();
LogWritter.sysDebug(e.toString());
}
}
public static void main(String args[]) {
HTDLexecDtrwMultiThread execDtrw = new HTDLexecDtrwMultiThread();
execDtrw.run();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -