合并PR-3506,修复小概率情况下任务重复调度问题;

3.2.0-release
xuxueli 4 weeks ago
commit 90fae1be9d

@ -2551,6 +2551,7 @@ public void execute() {
- 5、【优化】异常页面处理逻辑优化新增兜底落地页配置 - 5、【优化】异常页面处理逻辑优化新增兜底落地页配置
- 6、【重构】ReturnT 重构简化代码结构提升API易用性以及可维护性 - 6、【重构】ReturnT 重构简化代码结构提升API易用性以及可维护性
- 7、【修复】合并PR-3738修复拼写问题 - 7、【修复】合并PR-3738修复拼写问题
- 8、【修复】合并PR-3506修复小概率情况下任务重复调度问题
- 3、【规划中】登录安全升级密码加密处理算法从Md5改为Sha256 - 3、【规划中】登录安全升级密码加密处理算法从Md5改为Sha256
``` ```

@ -43,7 +43,8 @@ public class JobThread extends Thread{
this.jobId = jobId; this.jobId = jobId;
this.handler = handler; this.handler = handler;
this.triggerQueue = new LinkedBlockingQueue<TriggerParam>(); this.triggerQueue = new LinkedBlockingQueue<TriggerParam>();
this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<Long>()); //this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<Long>());
this.triggerLogIdSet = ConcurrentHashMap.newKeySet();
// assign job thread name // assign job thread name
this.setName("xxl-job, JobThread-"+jobId+"-"+System.currentTimeMillis()); this.setName("xxl-job, JobThread-"+jobId+"-"+System.currentTimeMillis());
@ -59,13 +60,13 @@ public class JobThread extends Thread{
* @return * @return
*/ */
public ReturnT<String> pushTriggerQueue(TriggerParam triggerParam) { public ReturnT<String> pushTriggerQueue(TriggerParam triggerParam) {
// avoid repeat // avoid repeat
if (triggerLogIdSet.contains(triggerParam.getLogId())) { if (!triggerLogIdSet.add(triggerParam.getLogId())) {
logger.info(">>>>>>>>>>> repeate trigger job, logId:{}", triggerParam.getLogId()); logger.info(">>>>>>>>>>> repeate trigger job, logId:{}", triggerParam.getLogId());
return new ReturnT<String>(ReturnT.FAIL_CODE, "repeate trigger job, logId:" + triggerParam.getLogId()); return new ReturnT<String>(ReturnT.FAIL_CODE, "repeate trigger job, logId:" + triggerParam.getLogId());
} }
triggerLogIdSet.add(triggerParam.getLogId()); // push trigger queue
triggerQueue.add(triggerParam); triggerQueue.add(triggerParam);
return ReturnT.ofSuccess(); return ReturnT.ofSuccess();
} }

Loading…
Cancel
Save