• conductor任务域


    任务域

    任务域有助于支持任务开发。这个想法是相同的“任务定义”可以在不同的“域”中实现。域名开发人员控制的任意名称。因此,当工作流程启动时,调用者可以在工作流中的所有任务中指定哪些任务需要在特定域中运行,然后该域用于轮询客户端上的任务以执行它。

    作为一个例子,如果工作流(WF1)有3个任务T1,T2,T3。工作流部署并正常工作,这意味着有T2工作人员轮询和执行。如果您修改T2并在本地运行,则不能保证您的修改后的T2工作人员可以从普通T2队列中获取正在查找的任务。“任务域”功能通过按域分割T2队列来解决此问题,因此当应用程序轮询特定域中的任务T2时,它将获得正确的任务。

    启动工作流时,可以将多个域指定为“back”,例如“domain1,domain2”。导体跟踪每个任务的最后轮询时间,因此在这种情况下,它会检查“domain1”是否有活动的工作人员,然后任务被放入“domain1”,如果没有,则对下一个域进行相同的检查按顺序“domain2”等。如果没有工作人员处于活动状态,那么该任务的计划没有域(默认行为)。请注意,这种“回退”类型的域字符串只能在启动工作流时使用,当从客户端轮询时,只能使用一个域。

    如何使用任务域

    更改轮询呼叫

    轮询调用现在必须指定域。

    Java客户端

    如果您使用的是Java客户端,那么简单的属性更改将强制WorkflowTaskCoordinator将该域传递给该轮询器。

        conductor.worker.T2.domain=mydomain //Task T2 needs to poll for domain "mydomain"
    

    REST调用

    GET /tasks/poll/batch/T2?workerid=myworker&domain=mydomain GET /tasks/poll/T2?workerid=myworker&domain=mydomain

    更改启动工作流调用

    启动工作流程时,请确保通过域映射任务

    Java客户端

        Map<String, Object> input = new HashMap<>();
        input.put("wf_input1", "one”);
    
        Map<String, String> taskToDomain = new HashMap<>();
        taskToDomain.put("T2", "mydomain");
    
        // Other options ...
        // taskToDomain.put("*", "mydomain") will put all tasks in mydomain
        // taskToDomain.put("T2", "mydomain,fallbackDomain") If mydomain has no active workers
        //        for T2 then will be put in fallbackDomain. Same can be used with "*" too.
    
        StartWorkflowRequest swr = new StartWorkflowRequest();
        swr.withName(“myWorkflow”)
            .withCorrelationId(“corr1”)
            .withVersion(1)
            .withInput(input)
            .withTaskToDomain(taskToDomain);
    
        wfclient.startWorkflow(swr);
    
    

    REST调用

    POST /workflow

    {
      "name": "myWorkflow",
      "version": 1,
      "correlatonId": "corr1"
      "input": {
        "wf_input1": "one"
      },
      "taskToDomain": {
        "T2": "mydomain"
      }
    }
    
  • 相关阅读:
    (Java) LeetCode 275. H-Index II —— H指数 II
    (Java) LeetCode 82. Remove Duplicates from Sorted List II —— 删除排序链表中的重复元素 II
    前端知识体系目录
    PhoneGap/cordvoa如何添加Media插件
    使用Google Closure Compiler高级压缩Javascript代码注意的几个地方
    javascript中的函数式声明与变量式声明
    call,apply,bind的用法
    canvas学习笔记
    Cookie/Session机制详解
    架构师速成6.8-设计开发思路-领域驱动 分类: 架构师速成 2015-07-30 18:28 15人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/7011540.html
Copyright © 2020-2023  润新知