Skip to content
This repository was archived by the owner on Dec 13, 2023. It is now read-only.

Commit d39b4bf

Browse files
authored
Merge pull request #3553 from v1r3n/support_domains
Support task domains in the worker spring configuration
2 parents 56acc35 + 5443798 commit d39b4bf

File tree

5 files changed

+27
-1
lines changed

5 files changed

+27
-1
lines changed

client-spring/src/main/java/com/netflix/conductor/client/spring/SpringWorkerConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,10 @@ public int getThreadCount(String taskName) {
3535
String key = "conductor.worker." + taskName + ".threadCount";
3636
return environment.getProperty(key, Integer.class, 0);
3737
}
38+
39+
@Override
40+
public String getDomain(String taskName) {
41+
String key = "conductor.worker." + taskName + ".domain";
42+
return environment.getProperty(key, String.class, null);
43+
}
3844
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
conductor.client.rootUri=http://localhost:8080/api/
2-
conductor.worker.hello.threadCount=100
2+
conductor.worker.hello.threadCount=100
3+
conductor.worker.hello_again.domain=test

java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/executor/task/AnnotatedWorkerExecutor.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.netflix.conductor.sdk.workflow.task.WorkerTask;
2525

2626
import com.google.common.annotations.VisibleForTesting;
27+
import com.google.common.base.Strings;
2728
import com.google.common.reflect.ClassPath;
2829

2930
public class AnnotatedWorkerExecutor {
@@ -42,6 +43,8 @@ public class AnnotatedWorkerExecutor {
4243

4344
private Map<String, Integer> workerToPollingInterval = new HashMap<>();
4445

46+
private Map<String, String> workerDomains = new HashMap<>();
47+
4548
private Map<String, Object> workerClassObjs = new HashMap<>();
4649

4750
private static Set<String> scannedPackages = new HashSet<>();
@@ -163,6 +166,14 @@ private void addMethod(WorkerTask annotation, Method method, Object bean) {
163166
}
164167
workerToPollingInterval.put(name, pollingInterval);
165168

169+
String domain = workerConfiguration.getDomain(name);
170+
if (Strings.isNullOrEmpty(domain)) {
171+
domain = annotation.domain();
172+
}
173+
if (!Strings.isNullOrEmpty(domain)) {
174+
workerDomains.put(name, domain);
175+
}
176+
166177
workerClassObjs.put(name, bean);
167178
workerExecutors.put(name, method);
168179
LOGGER.info(
@@ -187,10 +198,12 @@ public void startPolling() {
187198
}
188199

189200
LOGGER.info("Starting workers with threadCount {}", workerToThreadCount);
201+
LOGGER.info("Worker domains {}", workerDomains);
190202

191203
taskRunner =
192204
new TaskRunnerConfigurer.Builder(taskClient, executors)
193205
.withTaskThreadCount(workerToThreadCount)
206+
.withTaskToDomain(workerDomains)
194207
.build();
195208

196209
taskRunner.init();

java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/executor/task/WorkerConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,8 @@ public int getPollingInterval(String taskName) {
2929
public int getThreadCount(String taskName) {
3030
return 0;
3131
}
32+
33+
public String getDomain(String taskName) {
34+
return null;
35+
}
3236
}

java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/task/WorkerTask.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,6 @@
2727
int threadCount() default 1;
2828

2929
int pollingInterval() default 100;
30+
31+
String domain() default "";
3032
}

0 commit comments

Comments
 (0)