首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Netflix Conductor中将微服务(或其方法)注册到Task?

如何在Netflix Conductor中将微服务(或其方法)注册到Task?
EN

Stack Overflow用户
提问于 2017-01-28 05:33:02
回答 3查看 3.1K关注 0票数 9

我正在寻找一种比AxonFramework的Saga更复杂的工作流程--我们目前正在使用--我在Netflix Conductor中找到了一个。可悲的是,我在互联网上搜索了一个像样的例子,但无济于事。

我的问题是,在Netflix Conductor中,如何定义和创建任务或WorkflowTask,最重要的是,将微服务链接到它?以下是来自github的Netflix Conductor代码:

代码语言:javascript
复制
    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的新手。

EN

回答 3

Stack Overflow用户

发布于 2017-06-09 17:12:20

假设Micro服务有一个基于HTTP的REST端点。在这种情况下,您必须使用HttpTask,这是一个系统任务。Httptask发出一个Http调用,响应可以作为任务输出。请参阅以下链接:HttpTask

请记住将包含HttpTask的WorkflowDef的SchemaVersion设置为2。您还需要注册相应的Task type

票数 2
EN

Stack Overflow用户

发布于 2017-02-02 04:23:35

(免责声明:我没有尝试,我只是查看了文档...)

根据https://netflix.github.io/conductor/intro/concepts/#worker-taks实现您自己的WorkflowSystemTask

  • override

  • ()/ execute()方法以将您的microservice

  • set任务类型调用为SIMPLE
票数 0
EN

Stack Overflow用户

发布于 2020-01-22 09:36:16

  1. 定义任务客户端Bean并覆盖worker类的execute方法。
  2. 将任务客户端和worker Bean传递给TaskRunnerConfigurer

代码语言:javascript
复制
    @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;
        }
    }

此工作进程将从conductor服务器轮询任务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41903352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档