perf:过程日志改造
This commit is contained in:
@@ -79,33 +79,24 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
|
||||
coreLogProcess.setSuccessNum(0);
|
||||
coreLogProcess.setFailNum(0);
|
||||
coreLogProcess.setProcess(0);
|
||||
coreLogProcess.setError("");
|
||||
coreLogProcess.setParams("");
|
||||
coreLogProcessMapper.insert(coreLogProcess);
|
||||
|
||||
ThreadUtil.execute(() -> {
|
||||
List<Exception> errorList = new ArrayList<>();
|
||||
CollUtil.split(list, 100).forEach((it) -> {
|
||||
int accept = 0;
|
||||
try {
|
||||
accept = consumer.accept(it);
|
||||
} catch (Exception e) {
|
||||
errorList.add(e);
|
||||
}
|
||||
int accept = consumer.batchHandler(it);
|
||||
coreLogProcess.setProcess(coreLogProcess.getProcess() + it.size());
|
||||
coreLogProcess.setSuccessNum(coreLogProcess.getSuccessNum() + accept);
|
||||
coreLogProcess.setFailNum(coreLogProcess.getFailNum() + it.size() - accept);
|
||||
coreLogProcess.setError(JSON.toJSONString(errorList));
|
||||
coreLogProcessMapper.updateById(coreLogProcess);
|
||||
});
|
||||
|
||||
// 执行结束
|
||||
coreLogProcess.setFailFile(consumer.getFailFile());
|
||||
coreLogProcess.setStatus(1);
|
||||
coreLogProcess.setError(JSON.toJSONString(errorList));
|
||||
coreLogProcessMapper.updateById(coreLogProcess);
|
||||
});
|
||||
|
||||
|
||||
return coreLogProcess;
|
||||
}
|
||||
|
||||
@@ -126,29 +117,24 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
|
||||
coreLogProcess.setFailNum(0);
|
||||
coreLogProcess.setTotal(0);
|
||||
coreLogProcess.setProcess(0);
|
||||
coreLogProcess.setError("");
|
||||
coreLogProcessMapper.insert(coreLogProcess);
|
||||
|
||||
ThreadUtil.execute(() -> {
|
||||
int pageSize = 1000;
|
||||
int pageNum = 1, lastCount = pageSize;
|
||||
List<Exception> errorList = new ArrayList<>();
|
||||
while (lastCount == pageSize) {
|
||||
try {
|
||||
lastCount = consumer.accept(pageNum, pageSize);
|
||||
coreLogProcess.setTotal(coreLogProcess.getTotal() + lastCount);
|
||||
coreLogProcess.setProcess(coreLogProcess.getTotal());
|
||||
coreLogProcess.setError(JSON.toJSONString(errorList));
|
||||
coreLogProcess.setSuccessNum(coreLogProcess.getSuccessNum() + lastCount);
|
||||
} catch (Exception e) {
|
||||
errorList.add(e);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
coreLogProcessMapper.updateById(coreLogProcess);
|
||||
pageNum++;
|
||||
}
|
||||
|
||||
// 执行结束
|
||||
coreLogProcess.setError(JSON.toJSONString(errorList));
|
||||
coreLogProcess.setStatus(1);
|
||||
coreLogProcessMapper.updateById(coreLogProcess);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.tiesheng.web.service.imex;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.tiesheng.util.pojos.TokenBean;
|
||||
import com.tiesheng.web.pojos.imex.ExportDealDTO;
|
||||
import com.tiesheng.web.pojos.imex.ImportDealDTO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Service
|
||||
public class DefaultImexHandler implements TsImportHandler<String>, TsExportHandler<String> {
|
||||
|
||||
@Override
|
||||
public List<String> ready(ExportDealDTO dto, TokenBean token) {
|
||||
return CollUtil.newArrayList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> ready(ImportDealDTO dto, TokenBean token) {
|
||||
return CollUtil.newArrayList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTemplateUrl() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAction() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int batchHandler(List<String> list) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFailFile() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.tiesheng.web.service.imex;
|
||||
|
||||
import com.tiesheng.util.pojos.TokenBean;
|
||||
import com.tiesheng.web.pojos.imex.ExportDealDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface TsExportHandler<T> extends TsImexBase<T> {
|
||||
|
||||
|
||||
/**
|
||||
* 数据准备中
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<T> ready(ExportDealDTO dto, TokenBean token);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.tiesheng.web.service.imex;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.tiesheng.util.exception.ApiException;
|
||||
import com.tiesheng.util.pojos.TokenBean;
|
||||
import com.tiesheng.web.util.ProcessImportConsumer;
|
||||
|
||||
public interface TsImexBase<T> extends ProcessImportConsumer<T> {
|
||||
|
||||
/**
|
||||
* 动作说明(唯一)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
String getAction();
|
||||
|
||||
/**
|
||||
* 排序,如果action相同,只会使用sort大的来处理
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
default int getSort() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证是否登录
|
||||
*
|
||||
* @param tokenBean
|
||||
*/
|
||||
default void validToken(TokenBean tokenBean) {
|
||||
if (tokenBean == null || StrUtil.isEmpty(tokenBean.getId())) {
|
||||
throw new ApiException("请先登录");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取模版ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
default String getImexId() {
|
||||
return StrUtil.format("{}_{}", getAction(), getSort());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.tiesheng.web.service.imex;
|
||||
|
||||
import com.tiesheng.util.pojos.TokenBean;
|
||||
import com.tiesheng.web.pojos.imex.ImportDealDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface TsImportHandler<T> extends TsImexBase<T> {
|
||||
|
||||
|
||||
/**
|
||||
* 读取文件内容
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<T> ready(ImportDealDTO dto, TokenBean token);
|
||||
|
||||
|
||||
/**
|
||||
* 获取模版地址
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
String getTemplateUrl();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user