fix: 同步基础数据并发问题

jp2demo1.0
wyb 7 months ago
parent d58c1dba35
commit b8364c024b

@ -51,9 +51,10 @@ public class SyncBasicDataController {
return CommonResult.failed("无效的请求参数!");
}
String blockKey="syncBasicData:"+ JSON.toJSONString(syncBasicDataDto);
if (SYNC_BASIC_DATA_BLOCK_MAP.putIfAbsent(blockKey, 0) != null) {
if (SYNC_BASIC_DATA_BLOCK_MAP.containsKey(blockKey)) {
return CommonResult.failed("有正在同步的任务!");
}
SYNC_BASIC_DATA_BLOCK_MAP.put(blockKey,0);
try {
return syncBasicDataService.syncBasicData(syncBasicDataDto);
}catch (Exception ex){
@ -68,9 +69,10 @@ public class SyncBasicDataController {
public CommonResult<?> syncSingleBasicData(@RequestParam(name = "disDate") String disDate,@RequestParam(name = "inpatientNo") String inpatientNo){
log.info("省厅-同步单个患者基础数据disDate={},inpatientNo={}", disDate, inpatientNo);
String blockKey="syncSingleBasicData:"+ inpatientNo+":"+disDate;
if (SYNC_BASIC_DATA_BLOCK_MAP.putIfAbsent(blockKey, 0) != null) {
if (SYNC_BASIC_DATA_BLOCK_MAP.containsKey(blockKey)) {
return CommonResult.failed("有正在同步的任务!");
}
SYNC_BASIC_DATA_BLOCK_MAP.put(blockKey,0);
try {
LocalDate localDate = LocalDate.parse(disDate);
SyncBasicDataDto dto = new SyncBasicDataDto();
@ -91,9 +93,10 @@ public class SyncBasicDataController {
@GetMapping("/syncLastMonthBasicData")
public CommonResult<?> syncLastMonthBasicData(){
String blockKey="syncLastMonthBasicData";
if (SYNC_BASIC_DATA_BLOCK_MAP.putIfAbsent(blockKey, 0) != null) {
if (SYNC_BASIC_DATA_BLOCK_MAP.containsKey(blockKey)) {
return CommonResult.failed("有正在同步的任务!");
}
SYNC_BASIC_DATA_BLOCK_MAP.put(blockKey,0);
try {
LocalDate today = LocalDate.now();
LocalDate firstDayOfLastMonth = today.minusMonths(1).with(TemporalAdjusters.firstDayOfMonth());

Loading…
Cancel
Save