徒手写多线程执行保存和修改逻辑
1、定义线程池
/**
* 线程池
*/
private final static ThreadPoolTaskExecutor EXECUTOR = new ThreadPoolTaskExecutor();
static {
EXECUTOR.setCorePoolSize(5); // 线程池维护线程的最少数量
EXECUTOR.setKeepAliveSeconds(200); // 允许的空闲时间
EXECUTOR.setMaxPoolSize(20); // 线程池维护线程的最大数量
EXECUTOR.setQueueCapacity(50); // 缓存队列
EXECUTOR.initialize();
}
2、逻辑函数
@Override
public Map<String, Object> saveAll(Map<String, Object> map) {
synchronized (this) {
try {
EXECUTOR.execute(new Runnable() {
@Override
public void run() {
//A. 工作危害与个人防护
SelfSafetyA(map);
}
});
EXECUTOR.execute(new Runnable() {
@Override
public void run() {
//B. HSE 培训与授权
SelfTainB(map);
}
});
EXECUTOR.execute(new Runnable() {
@Override
public void run() {
//C. 安全参与
SelfSafeC(map);
}
});
EXECUTOR.execute(new Runnable() {
@Override
public void run() {
//E. 工作外安全
SelfValueE(map);
}
});
Map<String, Object> result = new HashMap<String, Object>();
result.put("message"," 执行成功");
result.put("code",200);
return result;
} catch (Exception e) {
// TODO Auto-generated catch block
Map<String, Object> result = new HashMap<String, Object>();
result.put("message",e.getMessage());
result.put("code",500);
return result;
}
}
}
A,为例
/**
* A. 工作危害与个人防护
* @param map
*/
protected void SelfSafetyA(Map<String, Object> map) {
Object selfSafety = map.get("selfSafetyA");
if(selfSafety!=null) {
JSONArray json = (JSONArray) JSON.toJSON(selfSafety);
//JSONObject jsonObject = JSONObject.parseObject(selfSafety.toString());
List<HseSelfSafetyValue> hseSelfSafetyValue = json.toJavaList(HseSelfSafetyValue.class);
this.hseSelfSafetyValueService.batchSave(hseSelfSafetyValue);
}
}