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