This is an automated email from the ASF dual-hosted git repository.

wuweijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git


The following commit(s) were added to refs/heads/master by this push:
     new 05a0a2c  Stop the correct instance of ReconcileService when shutdown 
(#1867)
05a0a2c is described below

commit 05a0a2cbe67fdf72a56acd985145783cfda1a84a
Author: 吴伟杰 <[email protected]>
AuthorDate: Fri Apr 2 19:04:12 2021 +0800

    Stop the correct instance of ReconcileService when shutdown (#1867)
    
    * Stop the correct instance of ReconcileService when shutdown
    
    * Complete testcases and comments
---
 .../elasticjob/lite/internal/schedule/JobScheduler.java          | 1 +
 .../elasticjob/lite/internal/schedule/SchedulerFacade.java       | 7 -------
 .../elasticjob/lite/internal/setup/SetUpFacade.java              | 9 +++++++++
 .../elasticjob/lite/internal/schedule/SchedulerFacadeTest.java   | 8 --------
 .../elasticjob/lite/internal/setup/SetUpFacadeTest.java          | 7 +++++++
 5 files changed, 17 insertions(+), 15 deletions(-)

diff --git 
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/JobScheduler.java
 
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/JobScheduler.java
index 7e19ebe..4629b38 100644
--- 
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/JobScheduler.java
+++ 
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/JobScheduler.java
@@ -182,6 +182,7 @@ public final class JobScheduler {
      * Shutdown job.
      */
     public void shutdown() {
+        setUpFacade.tearDown();
         schedulerFacade.shutdownInstance();
         jobExecutor.shutdown();
     }
diff --git 
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacade.java
 
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacade.java
index d22f2d0..7e4f170 100644
--- 
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacade.java
+++ 
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacade.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.elasticjob.lite.internal.schedule;
 
 import 
org.apache.shardingsphere.elasticjob.lite.internal.election.LeaderService;
-import 
org.apache.shardingsphere.elasticjob.lite.internal.reconcile.ReconcileService;
 import 
org.apache.shardingsphere.elasticjob.lite.internal.sharding.ExecutionService;
 import 
org.apache.shardingsphere.elasticjob.lite.internal.sharding.ShardingService;
 import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
@@ -36,14 +35,11 @@ public final class SchedulerFacade {
     
     private final ExecutionService executionService;
     
-    private final ReconcileService reconcileService;
-    
     public SchedulerFacade(final CoordinatorRegistryCenter regCenter, final 
String jobName) {
         this.jobName = jobName;
         leaderService = new LeaderService(regCenter, jobName);
         shardingService = new ShardingService(regCenter, jobName);
         executionService = new ExecutionService(regCenter, jobName);
-        reconcileService = new ReconcileService(regCenter, jobName);
     }
     
     /**
@@ -62,9 +58,6 @@ public final class SchedulerFacade {
         if (leaderService.isLeader()) {
             leaderService.removeLeader();
         }
-        if (reconcileService.isRunning()) {
-            reconcileService.stopAsync();
-        }
         JobRegistry.getInstance().shutdown(jobName);
     }
 }
diff --git 
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacade.java
 
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacade.java
index 34f37bd..05ed51f 100644
--- 
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacade.java
+++ 
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacade.java
@@ -80,4 +80,13 @@ public final class SetUpFacade {
             reconcileService.startAsync();
         }
     }
+    
+    /**
+     * Tear down.
+     */
+    public void tearDown() {
+        if (reconcileService.isRunning()) {
+            reconcileService.stopAsync();
+        }
+    }
 }
diff --git 
a/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacadeTest.java
 
b/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacadeTest.java
index a30444f..f4d30bd 100644
--- 
a/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacadeTest.java
+++ 
b/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/schedule/SchedulerFacadeTest.java
@@ -19,7 +19,6 @@ package 
org.apache.shardingsphere.elasticjob.lite.internal.schedule;
 
 import org.apache.shardingsphere.elasticjob.infra.handler.sharding.JobInstance;
 import 
org.apache.shardingsphere.elasticjob.lite.internal.election.LeaderService;
-import 
org.apache.shardingsphere.elasticjob.lite.internal.reconcile.ReconcileService;
 import 
org.apache.shardingsphere.elasticjob.lite.internal.sharding.ShardingService;
 import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
 import org.apache.shardingsphere.elasticjob.lite.util.ReflectionUtils;
@@ -48,9 +47,6 @@ public final class SchedulerFacadeTest {
     @Mock
     private ShardingService shardingService;
     
-    @Mock
-    private ReconcileService reconcileService;
-    
     private SchedulerFacade schedulerFacade;
     
     @Before
@@ -59,7 +55,6 @@ public final class SchedulerFacadeTest {
         schedulerFacade = new SchedulerFacade(null, "test_job");
         ReflectionUtils.setFieldValue(schedulerFacade, "leaderService", 
leaderService);
         ReflectionUtils.setFieldValue(schedulerFacade, "shardingService", 
shardingService);
-        ReflectionUtils.setFieldValue(schedulerFacade, "reconcileService", 
reconcileService);
     }
     
     @Test
@@ -68,19 +63,16 @@ public final class SchedulerFacadeTest {
         JobRegistry.getInstance().registerJob("test_job", 
jobScheduleController);
         schedulerFacade.shutdownInstance();
         verify(leaderService, times(0)).removeLeader();
-        verify(reconcileService, times(0)).stopAsync();
         verify(jobScheduleController).shutdown();
     }
     
     @Test
     public void assertShutdownInstanceIfLeaderAndReconcileServiceIsRunning() {
         when(leaderService.isLeader()).thenReturn(true);
-        when(reconcileService.isRunning()).thenReturn(true);
         JobRegistry.getInstance().registerRegistryCenter("test_job", 
regCenter);
         JobRegistry.getInstance().registerJob("test_job", 
jobScheduleController);
         schedulerFacade.shutdownInstance();
         verify(leaderService).removeLeader();
-        verify(reconcileService).stopAsync();
         verify(jobScheduleController).shutdown();
     }
 }
diff --git 
a/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacadeTest.java
 
b/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacadeTest.java
index 0c27d2f..846a1c4 100644
--- 
a/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacadeTest.java
+++ 
b/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/setup/SetUpFacadeTest.java
@@ -92,4 +92,11 @@ public final class SetUpFacadeTest {
         verify(leaderService).electLeader();
         verify(serverService).persistOnline(true);
     }
+    
+    @Test
+    public void assertTearDown() {
+        when(reconcileService.isRunning()).thenReturn(true);
+        setUpFacade.tearDown();
+        verify(reconcileService).stopAsync();
+    }
 }

Reply via email to