[英]How do I register a microservice (or its methods) to Task in Netflix Conductor?
我一直在寻找比 AxonFramework 中的 Saga 更复杂的工作流程——我们目前正在使用它——我在 Netflix Conductor 中找到了一个。 可悲的是,我在互联网上搜索了一个像样的例子,但无济于事。
我的问题是,在 Netflix Conductor 中,如何定义和创建 Task 或 WorkflowTask,最重要的是,如何将微服务链接到它? 这是来自 github 的 Netflix Conductor 代码:
WorkflowDef def = new WorkflowDef();
def.setName("test");
WorkflowTask t0 = new WorkflowTask();
t0.setName("t0");
t0.setType(Type.SIMPLE);
t0.setTaskReferenceName("t0");
WorkflowTask t1 = new WorkflowTask();
t1.setName("t1");
t1.setType(Type.SIMPLE);
t1.setTaskReferenceName("t1");
def.getTasks().add(t0);
def.getTasks().add(t1);
请原谅我的困惑,因为我是 Netflix Conductor 的新手。
(免责声明:我没试过,我只是看了文档...)
@Configuration
public class Configuration {
@Bean
public TaskClient taskClient(@Value("${conductor url}") String conductorServerURL) {
TaskClient taskClient = new TaskClient();
taskClient.setRootURI(conductorServerURL);
return taskClient;
}
@Bean
public TaskRunnerConfigurer taskRunnerConfigurer(
@Autowired final TaskClient taskClient,
@Autowired final List<Worker> workers) {
final TaskRunnerConfigurer taskRunnerConfigurer = new TaskRunnerConfigurer.Builder(taskClient, workers)
.withThreadCount(3)
.build();
taskRunnerConfigurer.init();
return taskRunnerConfigurer;
}
}
该工作人员将从指挥服务器轮询任务
现在有许多 SDK 可以将您的微服务工作者连接到 Conductor: https://github.com/conductor-sdk/
您可以在 Conductor 中创建一个简单的任务(使用 API 端点和这些参数https://conductor.netflix.com/configuration/taskdef.html .
工作人员在 Conductor 中轮询您的任务。 当一项任务作为要运行的工作时,它会将其分配给工作人员。 完成后,任务会将工作人员的结果返回到指挥工作流程。
这是 Go 中的一名工人: https://github.com/conductor-sdk/conductor-examples/tree/main/go-samples
还有一个 Java 示例: https://github.com/orkes-io/orkesworkers
最后 - 现在在https://play.orkes.io有一个免费的 Netflix 指挥云游乐场
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.