From 1a773eb0a62ac5d0b43408f2db5ad2a80538f5ba Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 17 二月 2025 12:30:19 +0800 Subject: [PATCH] 往队列新增是,判断是往头部新增还是往尾部新增 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java index 56f5de4..38d74a8 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java @@ -819,6 +819,9 @@ */ @Override public PhoneCallBackYQVO phoneCallBackYQ(PhoneCallReqYQVO phoneCallReqYQVO) { + //鍏堟妸璇ubId浠巆ache_exist涓墧闄わ紝鍙鏈夊洖璋冨氨鍓旈櫎锛堢洰鐨勬槸锛屽敖蹇cache-exist涓虹┖锛屽幓缂撳瓨涓嬩竴鎵硅鎵撶殑鐢佃瘽;杩欓噷鍓旈櫎涓嶅奖鍝嶇數璇濈殑姝e父涓氬姟锛� + redisCache.removeElementFromList("cache-exist", phoneCallReqYQVO.getTaskid()); + //鍒ゆ柇鏄惁鎸傛満 String hangupState = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "- hangup"); Object cacheObject1 = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup"); @@ -833,6 +836,12 @@ if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("1")) { return new PhoneCallBackYQVO(); } + //濡傛灉鍙戦�佺姸鎬佷负6锛屽氨璇存槑宸茬粡鎵撳畬浜嗭紝涔熸病鏈夊繀瑕佺户缁線涓嬭蛋浜� + if (StringUtils.isNotEmpty(phoneCallReqYQVO.getTaskid())) { + ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid())); + if (serviceSubtask.getSendstate() == 6L) return new PhoneCallBackYQVO(); + } + ServiceSubtask serviceSubtask2 = new ServiceSubtask(); serviceSubtask2.setRemark("鐢佃瘽鍙戦�佹垚鍔燂紙鎮h�呮寕鏂級"); serviceSubtask2.setSenduuid(phoneCallReqYQVO.getUuid()); @@ -1429,9 +1438,13 @@ @Override public List<PullTaskVO> taskPull() { //pullTaskVOList鐢ㄤ簬鏁版嵁杩斿洖 - List<PullTaskVO> pullTaskVOList = null; + List<PullTaskVO> pullTaskVOList = new ArrayList<>(); List<String> cacheList = new ArrayList<>(); ListOperations<String, String> listOps = redisTemplate.opsForList(); + //蹇呴』绛塧che-exist鍏ㄩ儴鎵撳畬鎵嶈兘鎷夊彇涓嬩竴鎵癸紙涓昏鏄�曟墍鏈夌殑鏁版嵁閮藉爢鍦ㄧ數璇濈殑缂撳瓨閲岋紝鍦ㄨ瀹氱殑鏃堕棿鎵撲笉瀹岋級 + long existSize = listOps.size("cache-exist"); + if (existSize > 0) return pullTaskVOList; + long size = listOps.size("cache-0"); log.error("---------鎵撶數璇濅箣鍓嶇紦瀛樹腑鐨勬暟鎹噺锛歿}", size); int count = 0; @@ -1465,12 +1478,16 @@ listOps.trim("cache-0" + i, count1, -1); } } + //existList鐢ㄦ潵璁板綍鎺ヤ笅鏉ラ渶瑕佹墽琛岀殑瀛愪换鍔D + List<String> existList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(pullTaskVOList)) { //缁欏洖璋冨弬鏁拌祴鍊� for (PullTaskVO pullTaskVO : pullTaskVOList) { + existList.add(pullTaskVO.getTaskid()); pullTaskVO.setAsrcallback(ASRCallBackPath); } } + if (existList.size() != 0) redisCache.setCacheListRight("cache-exist", existList); log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", pullTaskVOList.size()); return pullTaskVOList; } @@ -1524,7 +1541,7 @@ redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim(), ivrTaskTemplateScript.getId().toString(), 120, TimeUnit.MINUTES); } else { newValue0.add(subIds.get(i)); - redisCache.setCacheList(cacheName, newValue0); + redisCache.setCacheListRight(cacheName, newValue0); } } @@ -1853,6 +1870,7 @@ ServiceSubtask serviceSubtask = new ServiceSubtask(); serviceSubtask.setRemark("鐢佃瘽鎺ラ�氭垚鍔燂紝鎮h�呮嫆缁濋殢璁�"); serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid())); + serviceSubtask.setSendstate(6L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1; // 鍔�1鏄烦杩�/绗﹀彿 int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/"); @@ -2051,7 +2069,9 @@ redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES); if (StringUtils.isNotEmpty(serviceSubtask.getRemark())) serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�"); else serviceSubtask.setRemark("鐭俊琛ュ伩鍙戦�佹垚鍔�"); + serviceSubtask.setSendstate(3L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + } //閫氳繃褰撳墠鏃堕棿锛屾媺鍙栫數璇濇�绘暟 -- Gitblit v1.9.3