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

technoboy 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 c95a944  Fix lifecycle cannot trigger job (#1936)
c95a944 is described below

commit c95a944edb66c75f6e206fd34ed79ae33f396682
Author: 吴伟杰 <[email protected]>
AuthorDate: Wed Jul 21 11:50:57 2021 +0800

    Fix lifecycle cannot trigger job (#1936)
    
    * Fix lifecycle cannot trigger job
    
    * Complete test for trigger
---
 .../lite/lifecycle/internal/operate/JobOperateAPIImpl.java         | 6 ++----
 .../lite/lifecycle/internal/operate/JobOperateAPIImplTest.java     | 7 +++++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git 
a/elasticjob-lite/elasticjob-lite-lifecycle/src/main/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImpl.java
 
b/elasticjob-lite/elasticjob-lite-lifecycle/src/main/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImpl.java
index 35ba1f9..5001610 100644
--- 
a/elasticjob-lite/elasticjob-lite-lifecycle/src/main/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImpl.java
+++ 
b/elasticjob-lite/elasticjob-lite-lifecycle/src/main/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImpl.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.elasticjob.lite.lifecycle.internal.operate;
 import com.google.common.base.Preconditions;
 import org.apache.shardingsphere.elasticjob.infra.handler.sharding.JobInstance;
 import org.apache.shardingsphere.elasticjob.infra.yaml.YamlEngine;
+import 
org.apache.shardingsphere.elasticjob.lite.internal.instance.InstanceService;
 import org.apache.shardingsphere.elasticjob.lite.internal.server.ServerStatus;
 import org.apache.shardingsphere.elasticjob.lite.internal.storage.JobNodePath;
 import org.apache.shardingsphere.elasticjob.lite.lifecycle.api.JobOperateAPI;
@@ -41,10 +42,7 @@ public final class JobOperateAPIImpl implements 
JobOperateAPI {
     @Override
     public void trigger(final String jobName) {
         Preconditions.checkNotNull(jobName, "Job name cannot be null");
-        JobNodePath jobNodePath = new JobNodePath(jobName);
-        for (String each : 
regCenter.getChildrenKeys(jobNodePath.getInstancesNodePath())) {
-            regCenter.persist(jobNodePath.getInstanceNodePath(each), 
"TRIGGER");
-        }
+        new InstanceService(regCenter, jobName).triggerAllInstances();
     }
     
     @Override
diff --git 
a/elasticjob-lite/elasticjob-lite-lifecycle/src/test/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImplTest.java
 
b/elasticjob-lite/elasticjob-lite-lifecycle/src/test/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImplTest.java
index 6e9c0a7..7e85aaf 100644
--- 
a/elasticjob-lite/elasticjob-lite-lifecycle/src/test/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImplTest.java
+++ 
b/elasticjob-lite/elasticjob-lite-lifecycle/src/test/java/org/apache/shardingsphere/elasticjob/lite/lifecycle/internal/operate/JobOperateAPIImplTest.java
@@ -48,11 +48,14 @@ public final class JobOperateAPIImplTest {
     
     @Test
     public void assertTriggerWithJobName() {
+        when(regCenter.isExisted("/test_job")).thenReturn(true);
+        
when(regCenter.isExisted("/test_job/trigger/ip1@-@defaultInstance")).thenReturn(false);
+        
when(regCenter.isExisted("/test_job/trigger/ip2@-@defaultInstance")).thenReturn(false);
         
when(regCenter.getChildrenKeys("/test_job/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance",
 "ip2@-@defaultInstance"));
         jobOperateAPI.trigger("test_job");
         verify(regCenter).getChildrenKeys("/test_job/instances");
-        verify(regCenter).persist("/test_job/instances/ip1@-@defaultInstance", 
"TRIGGER");
-        verify(regCenter).persist("/test_job/instances/ip2@-@defaultInstance", 
"TRIGGER");
+        verify(regCenter).persist("/test_job/trigger/ip1@-@defaultInstance", 
"");
+        verify(regCenter).persist("/test_job/trigger/ip2@-@defaultInstance", 
"");
     }
     
     @Test

Reply via email to