From 608ca0c6a16cbde1fd85231ec6a67df9d3642a47 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Fri, 21 Jul 2023 13:51:58 +0800 Subject: [PATCH] =?UTF-8?q?=20REPORT-101045=20=E3=80=90=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E4=B8=89=E6=9C=9F=E3=80=91=E5=9B=9E=E6=94=B6?= =?UTF-8?q?=E7=AB=99=E4=BA=A4=E4=BA=92=E9=97=AE=E9=A2=98=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vcs/VcsRecycleSettingHelper.java | 49 +++++++++++++++++++ .../mainframe/vcs/ui/RecycleSettingPane.java | 20 +------- 2 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsRecycleSettingHelper.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsRecycleSettingHelper.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsRecycleSettingHelper.java new file mode 100644 index 000000000..3e6a5bab9 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsRecycleSettingHelper.java @@ -0,0 +1,49 @@ +package com.fr.design.mainframe.vcs; + +import com.fr.concurrent.NamedThreadFactory; +import com.fr.transaction.Configurations; +import com.fr.transaction.WorkerAdaptor; +import com.fr.workspace.WorkContext; +import com.fr.workspace.server.vcs.VcsConfig; +import com.fr.workspace.server.vcs.v2.scheduler.VcsAutoCleanOperator; +import com.fr.workspace.server.vcs.v2.scheduler.VcsAutoCleanService; +import com.fr.workspace.server.vcs.v2.scheduler.VcsAutoRecycleSchedule; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * 版本管理界面配置回收事件的处理类 + * + * @author Destiny.Lin + * @since 11.0 + * Created on 2023/7/21 + */ +public class VcsRecycleSettingHelper { + + private static ExecutorService executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory("VcsRecycle")); + + + /** + * 更新任务 + * + * @param day + */ + public static void updateJob(int day) { + executorService.execute(new Runnable() { + @Override + public void run() { + Configurations.update(new WorkerAdaptor(VcsConfig.class) { + @Override + public void run() { + VcsConfig.getInstance().setV2CleanRecycleInterval(day); + } + }); + WorkContext.getCurrent().get(VcsAutoCleanOperator.class).addOrUpdateVcsAutoCleanJob( + VcsAutoCleanService.VCS_AUTO_CLEAN_RECYCLE_JOB_NAME, + 1, + VcsAutoRecycleSchedule.class); + } + }); + } +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecycleSettingPane.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecycleSettingPane.java index 7c41e64f2..0653aad05 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecycleSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecycleSettingPane.java @@ -9,13 +9,8 @@ import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.VerticalFlowLayout; -import com.fr.transaction.Configurations; -import com.fr.transaction.WorkerAdaptor; -import com.fr.workspace.WorkContext; +import com.fr.design.mainframe.vcs.VcsRecycleSettingHelper; import com.fr.workspace.server.vcs.VcsConfig; -import com.fr.workspace.server.vcs.v2.scheduler.VcsAutoCleanOperator; -import com.fr.workspace.server.vcs.v2.scheduler.VcsAutoCleanService; -import com.fr.workspace.server.vcs.v2.scheduler.VcsAutoRecycleSchedule; import javax.swing.JPanel; import javax.swing.ScrollPaneConstants; @@ -89,18 +84,7 @@ public class RecycleSettingPane extends BasicPane { button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - new Thread(() -> { - Configurations.update(new WorkerAdaptor(VcsConfig.class) { - @Override - public void run() { - VcsConfig.getInstance().setV2CleanRecycleInterval((int) spinner.getValue()); - } - }); - WorkContext.getCurrent().get(VcsAutoCleanOperator.class).addOrUpdateVcsAutoCleanJob( - VcsAutoCleanService.VCS_AUTO_CLEAN_RECYCLE_JOB_NAME, - 1, - VcsAutoRecycleSchedule.class); - }).start(); + VcsRecycleSettingHelper.updateJob((int) spinner.getValue()); } }); }