shangqi-拆分落库
2022-10-13 18:06:12 0 举报
shangqi-拆分落库
作者其他创作
大纲/内容
继续遍历执行
继续遍历执行,直到List<BlazeRequestLog> requestLogs全部遍历完成
直接返回{code:\"S001\
遍历进行一条一条的拆分
@Transactional(propagation =Propagation.REQUIRES_NEW)
更新本条记录的状态为“2:拆分完成”
BlazeRequestLogService.updateSplited
SplitorController.executeWithAppNo
是
结束
SplitorController.execute
根据业务单号查询决策结果报文信息注意:此处使用Thread.sleep保证在决策结果报文存入数据库(另外一个程序操作的)之后再去访问
否
数据库表 b style=\
BlazeRequestLogService.batchUpdateSplited
是否有数据
nextstep“END”时进行拆分落库
自动拆分落库
校验业务单号appNo是否为空
更新本条记录的状态为“-2:跳过”
解析xml报文,拿到BlazeApplication实例
BlazeSplitService.splitOne
BlazeSplitJob.executeWithAppNo
com/wiseco/onestop/lhcb/splitor/controller/SplitorController.java
BlazeRequestLogMapper.queryByAppNo
判断BlazeApplication是否为null
AsyncBlazeSplitJob.splitRequestLogs
BlazeRequestLogService.queryByAppNoWithDelayMilliseconds
入库每个节点都需要入库
是否有异常
多线程操作,见注解:asyncSplitExecutor
判断当前记录是否需要拆分
请求数据
@Transactional(propagation = Propagation.REQUIRED)更新拆分失败的这条记录的状态为“-1:拆分失败”
结束本条记录的拆分
手动/自动
返回数据
更新拆分失败的这条记录的状态为“-1:拆分失败”
数据库表 blaze_request_log对应实体类 BlazeRequestLog拆分状态为SPLITED = 0,未开始查出来的结果是一个ListList<BlazeRequestLog> queryByAppNo(@Param(\"appNo\")String appNo);
0 条评论
下一页