<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      camunda_17_external_task

      external task 是 Camunda 中Service task設計非常好的一種實現, 最大程度地做到了和流程引擎的解耦. 如果我們的流程是全自動的, 甚至可以完全使用 external task實現整個流程業務處理.

      本文目的

      1. 學習 SpringBoot 版external-task-client 的使用
      2. 學習普通版 external-task-client 的使用

      bpmn 流程

      非常簡單的流程圖, 僅僅包含一個Service task, 實現類型選 External.
      流程圖

      流程bpmn xml源碼:

      <?xml version="1.0" encoding="UTF-8"?>
      <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0j7gdmg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.3.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
        <bpmn:process id="loan_process" isExecutable="true">
          <bpmn:startEvent id="StartEvent_1">
            <bpmn:outgoing>Flow_011etxb</bpmn:outgoing>
          </bpmn:startEvent>
          <bpmn:sequenceFlow id="Flow_011etxb" sourceRef="StartEvent_1" targetRef="Activity_1dbhjra" />
          <bpmn:endEvent id="Event_1weohz6">
            <bpmn:incoming>Flow_0qtyon7</bpmn:incoming>
          </bpmn:endEvent>
          <bpmn:sequenceFlow id="Flow_0qtyon7" sourceRef="Activity_1dbhjra" targetRef="Event_1weohz6" />
          <bpmn:serviceTask id="Activity_1dbhjra" name="creditScoreChecker" camunda:type="external" camunda:topic="creditScoreChecker">
            <bpmn:incoming>Flow_011etxb</bpmn:incoming>
            <bpmn:outgoing>Flow_0qtyon7</bpmn:outgoing>
          </bpmn:serviceTask>
        </bpmn:process>
        <bpmndi:BPMNDiagram id="BPMNDiagram_1">
          <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="loan_process">
            <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
              <dc:Bounds x="179" y="99" width="36" height="36" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Event_1weohz6_di" bpmnElement="Event_1weohz6">
              <dc:Bounds x="432" y="99" width="36" height="36" />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="Activity_103uall_di" bpmnElement="Activity_1dbhjra">
              <dc:Bounds x="270" y="77" width="100" height="80" />
              <bpmndi:BPMNLabel />
            </bpmndi:BPMNShape>
            <bpmndi:BPMNEdge id="Flow_011etxb_di" bpmnElement="Flow_011etxb">
              <di:waypoint x="215" y="117" />
              <di:waypoint x="270" y="117" />
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNEdge id="Flow_0qtyon7_di" bpmnElement="Flow_0qtyon7">
              <di:waypoint x="370" y="117" />
              <di:waypoint x="432" y="117" />
            </bpmndi:BPMNEdge>
          </bpmndi:BPMNPlane>
        </bpmndi:BPMNDiagram>
      </bpmn:definitions>
      
      

      Post 請求測試腳本:

      POST http://localhost:8080/engine-rest/process-definition/key/loan_process/start HTTP/1.1
      Content-Type: application/json
      
      {
          "variables": {
              "amount": {
                  "value":555,
                  "type":"long"
              },
              "item": {
                  "value": "item-xyz"
              }
          }
      }
      

      SpringBoot 版 client 測試程序

      官方項目主頁
      官方示例項目主頁

      pom.xml

      項目只要是標準的SpringBoot Web 項目即可, 增加下面依賴:

          <dependency>
              <groupId>org.camunda.bpm.springboot</groupId>
              <artifactId>camunda-bpm-spring-boot-starter-external-task-client</artifactId>
              <version>7.17.0</version>
          </dependency>		
      

      application.yaml

      在application.yaml 文件中聲明要監聽的camunda Rest API 服務器, 并設定訂閱的topic, 一個項目可以訂閱多個topic.

      camunda.bpm.client:
        base-url: http://localhost:8080/engine-rest
        async-response-timeout: 1000 # Defines the maximum duration of the long-polling request
        worker-id: spring-boot-client # Identifies the worker towards the Engine
        #basic-auth: # Configure if REST API is secured with basic authentication
        #  username: demo
        #  password: demo  
      
        subscriptions:
          creditScoreChecker:    # This topic name must match the respective `@ExternalTaskSubscription`
              process-definition-key: loan_process  # Filters for External Tasks of this key
              include-extension-properties: true
              variable-names: defaultScore
              lock-duration: 10000 # Defines for how long the External Tasks are locked until they can be fetched again
      

      External task 監聽類

      @Configuration
      @ExternalTaskSubscription("creditScoreChecker")
      public class CreditScoreCheckerHandler implements ExternalTaskHandler {
      
      	@Override
      	public void execute(ExternalTask externalTask, ExternalTaskService externalTaskService) {
      		// add your business logic here
      		System.out.println("CreditScoreCheckerHandler done");
      		Map<String, Object> variables = new HashMap<>();
      		variables.put("approved", true);
      		externalTaskService.complete(externalTask,variables);
      	}
      }
      
      

      普通 Java jar 版client 測試程序

      官方項目主頁
      我們的項目只要是標準的 Maven 項目即可, 簡單使用 camunda-external-task-client 即可改造為 Listerner 后臺程序.

      pom.xml

      增加下面依賴:

              <dependency>
                  <groupId>org.camunda.bpm</groupId>
                  <artifactId>camunda-external-task-client</artifactId>
                  <version>7.17.0</version>
              </dependency>
              <dependency>
                  <groupId>javax.xml.bind</groupId>
                  <artifactId>jaxb-api</artifactId>
                  <version>2.3.1</version>
              </dependency>   
      

      External task 監聽類

      public class ExternalTaskTest {
      	private final static Logger logger = Logger.getLogger(ExternalTaskTest.class.getName());
      
      	public static void main(String[] args) {
      		logger.info("ExternalTaskClient setup");
      
      		// bootstrap the client
      		ExternalTaskClient client = ExternalTaskClient.create()
      				.baseUrl("http://localhost:8080/engine-rest")
      				.workerId("java-client")
      				.asyncResponseTimeout(1000).build();
      
      		// subscribe to the topic
      		client.subscribe("creditScoreChecker").lockDuration(10000).handler((externalTask, externalTaskService) -> {
      			Map<String, Object> variables = new HashMap<>();
      			variables.put("approved", true);
      
      			// complete the external task
      			externalTaskService.complete(externalTask, variables);
      			System.out.println("The External Task " + externalTask.getId() + " has been completed!");
      		}).open();
      
      		logger.info("Listening topics...");
      	}
      }
      
      
      posted @ 2022-10-09 21:04  harrychinese  閱讀(774)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 污网站在线观看视频| 91青青草视频在线观看| 亚洲免费观看一区二区三区| 欧美黑人又粗又大久久久| 年日韩激情国产自偷亚洲| 鲁丝片一区二区三区免费| 黑人大荫道bbwbbb高潮潮喷| 国产永久免费高清在线观看| 成在人线AV无码免观看| 久久久久国色av免费观看性色| 毛片久久网站小视频| 99久久国产综合精品成人影院| 日本强伦片中文字幕免费看| 黄色一级片一区二区三区| 亚洲国产精品久久久天堂麻豆宅男 | 亚洲精品理论电影在线观看| 人妻夜夜爽天天爽| 猫咪AV成人永久网站在线观看 | 国产成人无码精品亚洲| 亚洲一区二区三级av| 日本一道一区二区视频| 福利视频在线一区二区| 在线精品视频一区二区| 在线日韩日本国产亚洲| 国产午夜福利视频在线| 国产成人8x视频网站入口| 日韩av在线一卡二卡三卡| 亚洲av无码成人精品区一区| 高清破外女出血AV毛片| 人妻护士在线波多野结衣| 欧美日韩国产图片区一区| 激情综合五月| 欧洲亚洲精品免费二区| 宝贝腿开大点我添添公视频免| 最新国产精品拍自在线观看| 精品国内自产拍在线观看| 婷婷色综合成人成人网小说| 库尔勒市| 中文字幕av一区二区| 色偷偷亚洲女人天堂观看| 韩国av无码|