diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/task/ExpertInviteTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/task/ExpertInviteTask.java index cd6b57c..8b0b0ac 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/task/ExpertInviteTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/task/ExpertInviteTask.java @@ -78,9 +78,9 @@ public class ExpertInviteTask { private final YxtCallOrSmsHelper yxtCallOrSmsHelper; /** - * 用来存入线程执行情况, 方便于停止定时任务时使用 + * 用来存入线程执行句柄, 停止定时任务时使用 */ - protected static final ConcurrentMap> INVITE_MAP = new ConcurrentHashMap<>(); + private static final ConcurrentMap> INVITE_TASK_MAP = new ConcurrentHashMap<>(); public ExpertInviteTask currProxy() { return (ExpertInviteTask) AopContext.currentProxy(); @@ -155,7 +155,7 @@ public class ExpertInviteTask { if (ArrayUtil.isNotEmpty(invitedRefused)) { tmpInvitedRefused = invitedRefused[0]; } - if (!INVITE_MAP.containsKey(meetingId)) { + if (!INVITE_TASK_MAP.containsKey(meetingId)) { addInviteTask(meetingId, false, properties.getInviteDelay(), tmpInvitedRefused); log.info("重置会议的随机抽取状态:{}", meetingId); LambdaUpdateWrapper update = Wrappers.lambdaUpdate(Meeting.class); @@ -190,7 +190,7 @@ public class ExpertInviteTask { log.error("执行专家邀请任务异常:{}", meetingId, e); } }, startTime, Duration.ofMinutes(properties.getInviteFixedRate())); - INVITE_MAP.putIfAbsent(meetingId, future); + INVITE_TASK_MAP.putIfAbsent(meetingId, future); log.info("添加专家抽取后台任务:{}", meetingId); } @@ -208,6 +208,12 @@ public class ExpertInviteTask { cachePlusOps.hSet(getCacheKey(meetingId), cacheVal); } + /** + * 抽取过程 + * + * @param meetingId 会议ID + * @param invitedRefused 是否可以邀请已拒绝的专家 + */ @Transactional(rollbackFor = Exception.class) public void invite(Long meetingId, Boolean invitedRefused) { log.info("开始进行专家后台抽取:{}", meetingId); @@ -269,9 +275,9 @@ public class ExpertInviteTask { log.info("终止专家抽取:{}", meetingId); meetingService.stopRandomInvite(meetingId); cachePlusOps.hDel(getCacheKey(meetingId)); - ScheduledFuture future = INVITE_MAP.get(meetingId); + ScheduledFuture future = INVITE_TASK_MAP.get(meetingId); if (future != null) { - INVITE_MAP.remove(meetingId); + INVITE_TASK_MAP.remove(meetingId); if (!future.isCancelled()) { future.cancel(true); }