From e463aaab9fa84acd4ae2e7a50bfcee53c872cf49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sat, 14 May 2022 07:31:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=AF=B9=E4=B8=8A=E7=BA=A7=E7=9A=84?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E7=94=A8=E9=98=9F=E5=88=97=E6=9C=BA=E5=88=B6?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E9=9B=86=E4=B8=AD=E6=89=B9=E9=87=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/XmMenuSumParentsListener.java | 36 +++++++++---------- .../listener/XmTaskSumParentsListener.java | 33 ++++++++--------- 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/listener/XmMenuSumParentsListener.java b/xm-core/src/main/java/com/xm/core/listener/XmMenuSumParentsListener.java index 3690e444..451ce43c 100644 --- a/xm-core/src/main/java/com/xm/core/listener/XmMenuSumParentsListener.java +++ b/xm-core/src/main/java/com/xm/core/listener/XmMenuSumParentsListener.java @@ -56,17 +56,25 @@ public class XmMenuSumParentsListener extends MessageListener { if(myMenusAllMap.size()>0){ List menus=new ArrayList<>(); - List errors=new ArrayList<>(); - myMenusAllMap.forEach((projectId,menusMap)->{ + myMenusAllMap.forEach((projectId,menusMap)->{ menus.addAll(menusMap.values()); if(menus.size()>100){ - try { - xmMenuStateService.batchSumParents(menus); - menus.clear(); - }catch (Exception e){ - errors.addAll(menus); - menus.clear(); - } + new Thread(){ + @Override + public void run() { + List myMenus=new ArrayList<>(); + synchronized (menus){ + myMenus.addAll(menus); + menus.clear(); + } + try { + xmMenuStateService.batchSumParents(myMenus); + }catch (Exception e){ + xmMenuStateService.batchSumParents(myMenus); + } + } + }.start(); + } }); if(menus.size()>0){ @@ -74,15 +82,7 @@ public class XmMenuSumParentsListener extends MessageListener { xmMenuStateService.batchSumParents(menus); menus.clear(); }catch (Exception e){ - - } - } - if(errors.size()>0){ - try { - xmMenuStateService.batchSumParents(errors); - errors.clear(); - }catch (Exception e){ - errors.clear(); + xmMenuStateService.batchSumParents(menus); } } } diff --git a/xm-core/src/main/java/com/xm/core/listener/XmTaskSumParentsListener.java b/xm-core/src/main/java/com/xm/core/listener/XmTaskSumParentsListener.java index 5577e4f7..f06fcfed 100644 --- a/xm-core/src/main/java/com/xm/core/listener/XmTaskSumParentsListener.java +++ b/xm-core/src/main/java/com/xm/core/listener/XmTaskSumParentsListener.java @@ -55,17 +55,25 @@ public class XmTaskSumParentsListener extends MessageListener { if(myTasksAllMap.size()>0){ List tasks=new ArrayList<>(); - List errors=new ArrayList<>(); myTasksAllMap.forEach((projectId,tasksMap)->{ tasks.addAll(tasksMap.values()); if(tasks.size()>100){ - try { - xmTaskService.batchSumParents(tasks); - tasks.clear(); - }catch (Exception e){ - errors.addAll(tasks); - tasks.clear(); - } + new Thread(){ + @Override + public void run() { + List myTasks=new ArrayList<>(); + synchronized (tasks){ + myTasks.addAll(tasks); + tasks.clear(); + } + try { + xmTaskService.batchSumParents(myTasks); + }catch (Exception e){ + xmTaskService.batchSumParents(myTasks); + } + } + }.start(); + } }); if(tasks.size()>0){ @@ -76,14 +84,7 @@ public class XmTaskSumParentsListener extends MessageListener { } } - if(errors.size()>0){ - try { - xmTaskService.batchSumParents(errors); - errors.clear(); - }catch (Exception e){ - errors.clear(); - } - } + } }