创建线程池,创建线程并加入线程池中
1.创建线程池
public class DataPushThreadPool {
/**
* 创建线程池
*/
private static ExecutorService threadPool = Executors.newFixedThreadPool(10);
public void pushData(Map<String, String> map,List paramList,String jklx){
//创建线程,加入线程池
DataPushThread dataPushThread = new DataPushThread();
dataPushThread.setParamMap(map);
dataPushThread.setParamList(paramList);
dataPushThread.setJklx(jklx);
threadPool.execute(dataPushThread);
}
}
2.创建线程
public class DataPushThread extends Thread{
/**
* 用于封装数据
*/
private Map paramMap;
/**
* 用于封装数据
*/
private List paramList;
/**
* 接口类型
*/
private String jklx;
/**
* dataSource:注册数据源
*/
private static DataSource dataSource = null;
@Override
public void run() {
if("1".equals(jklx)){
String status = FkqrHttpRequestUtil.getData(paramMap);
// TODO 根据响应信息处理数据推送结果
if("200".equals(status)){
if(paramList != null && paramList.size() > 0){
for (int i = 0; i < paramList.size(); i++) {
Map param = (HashMap)paramList.get(i);
//修改dcmx状态
String rkdnm = (String)param.get("CRK_RKD_NM");
updateTsbz(rkdnm, "1");
//param.put("xysj", JSON.toJSONString(param));
//修改留痕表响应内容
param.put("xyzt", "200");
param.put("xyxx", "推送成功");
updateSjtslh(param);
}
//获取流水号
String djnm = (String)((HashMap)paramList.get(0)).get("CRK_RKD_NM");
String lsh = getLshBydjnm(djnm);
//修改dcgl推送状态
updateDcglTsbz(lsh, checkDcglTsbz(lsh));
}
}else{//未获取到返回信息的当做推送失败处理
if(paramList != null && paramList.size() > 0){
for (int i = 0; i < paramList.size(); i++) {
Map param = (HashMap)paramList.get(i);
//修改dcmx状态
String rkdnm = (String)param.get("CRK_RKD_NM");
updateTsbz(rkdnm, "4");
//修改留痕表响应内容
param.put("xyzt", "-1");
param.put("xyxx", "推送失败");
if(StringUtils.isNotEmpty(rkdnm)){
updateSjtslh(param);
}
}
//获取流水号
String djnm = (String)((HashMap)paramList.get(0)).get("CRK_RKD_NM");
String lsh = getLshBydjnm(djnm);
//修改dcgl推送状态
updateDcglTsbz(lsh, checkDcglTsbz(lsh));
}
}
}
}