add(feature/REQ-3714) 增加删除工种redis锁
This commit is contained in:
parent
818247a5cd
commit
00d124580f
@ -3,6 +3,7 @@ package cn.axzo.orgmanax.server.workerprofession.foundation.impl;
|
||||
import cn.axzo.orgmanax.infra.dao.workerprofession.entity.WorkerProfessionTag;
|
||||
import cn.axzo.orgmanax.infra.dao.workerprofession.repository.WorkerProfessionTagRepository;
|
||||
import cn.axzo.orgmanax.server.util.AssertUtil;
|
||||
import cn.axzo.orgmanax.server.util.RedisLockUtil;
|
||||
import cn.axzo.orgmanax.server.workerprofession.foundation.OrgProjectWorkerProfessionFoundationService;
|
||||
import cn.axzo.orgmanax.server.workerprofession.foundation.OrgWorkerHistoryFoundationService;
|
||||
import cn.axzo.orgmanax.server.workerprofession.foundation.OrgWorkerSkillTagFoundationService;
|
||||
@ -29,15 +30,21 @@ public class OrgProjectWorkerProfessionFoundationServiceImpl implements OrgProje
|
||||
private final OrgWorkerHistoryFoundationService historyFoundationService;
|
||||
private final OrgWorkerSkillTagFoundationService skillTagFoundationService;
|
||||
|
||||
private static final String CONFIGURE_REDIS_LOCK_PRE = "WORKER_PROFESSION_CONFIGURE";
|
||||
private static final long PROFESSION_CONFIGURE_RETRY_TIMEOUT = 1000L;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void delete(DeleteWorkerProfession req) {
|
||||
AssertUtil.isFalse(req.isInvalid(), String.format("无效的参数%s", req));
|
||||
// 记录工人当前的工种&技能标签历史
|
||||
historyFoundationService.recordHistory(req);
|
||||
// 删除本身工种和技能标签
|
||||
doUpdateValid(req);
|
||||
String redisKey = RedisLockUtil.formatKey(CONFIGURE_REDIS_LOCK_PRE, req.getOrgNodeId());
|
||||
RedisLockUtil.tryLock(redisKey, PROFESSION_CONFIGURE_RETRY_TIMEOUT, () -> {
|
||||
// 记录工人当前的工种&技能标签历史
|
||||
historyFoundationService.recordHistory(req);
|
||||
// 删除本身工种和技能标签
|
||||
doUpdateValid(req);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user