Introduction

conductor中的事件提供工作流之间的松散耦合,并支持从外部系统生成和消耗事件。

包括:

1. 能够在外部系统像SQS或Conductor内部生成一个事件(消息)。

2. 当发生与提供的条件匹配的特定事件时启动工作流。

conductor提供了SUB_WORKFLOW任务,可用于将工作流嵌入到父工作流程中。 事件支持提供类似的功能,而无需显式添加依赖关系,并提供了一个无休止的风格集成。

Event Task

事件任务提供将事件(消息)发布到conductor或外部事件系统(如SQS)的能力。 事件任务对于为工作流和任务创建基于事件的依赖非常有用。

Event Handler

事件处理程序是已注册的监听器,当发生匹配事件时执行一个操作。 支持的操作是:

  1. Start a Workflow
  2. Fail a Task
  3. Complete a Task

事件处理程序可以配置为监听Conductor Events或外部事件(如SQS)。

Configuration

事件处理程序通过/ event / API配置。

结构:

{
"name" : "descriptive unique name",
"event": "event_type:event_location",
"condition": "boolean condition",
"actions": ["see examples below"]
}
条件:
条件是必须评估为一个布尔值的表达式。 支持类似JavaScript的语法,可用于基于有效载荷评估条件。 只有当条件求值为true时才执行操作。 给定消息中的以下有效内容:
{
"fileType": "AUDIO",
"version": 3,
"metadata": {
length: 300,
codec: "aac"
}
}
表达式:
$.version > 1    true
$.version > 10   false
$.metadata.length == 300  true 操作

Start A Workflow

{
"action": "start_workflow",
"start_workflow": {
"name": "WORKFLOW_NAME",
"version": <optional>
"input": {
"param1": "${param1}"
}
}
}

Complete Task*

{
"action": "complete_task",
"complete_task": {
"workflowId": "${source.externalId.workflowId}",
"taskRefName": "task_1",
"output": {
"response": "${source.result}"
}
},
"expandInlineJSON": true
}

Fail Task*

{
"action": "fail_task",
"fail_task": {
"workflowId": "${source.externalId.workflowId}",
"taskRefName": "task_1",
"output": {
"response": "${source.result}"
}
},
"expandInlineJSON": true
}

启动工作流的输入和完成/失败任务的输出 遵循用于引导工作流输入的相同表达式。

conductor 事件处理程序的更多相关文章

  1. KnockoutJS 3.X API 第七章 其他技术(5) 使用其他事件处理程序

    在大多数情况下,数据绑定属性提供了一种干净和简洁的方式来绑定到视图模型. 然而,事件处理是一个常常会导致详细数据绑定属性的领域,因为匿名函数通常是传递参数的推荐技术. 例如: <a href=& ...

  2. 深入理解DOM事件机制系列第二篇——事件处理程序

    × 目录 [1]HTML [2]DOM0级 [3]DOM2级[4]IE[5]总结 前面的话 事件处理程序又叫事件侦听器,实际上就是事件的绑定函数.事件发生时会执行函数中相应代码.事件处理程序有HTML ...

  3. JavaScript事件对象与事件处理程序

    在学习之前建议请看一下事件流.事件冒泡.事件捕获 一.事件对象 事件对象:在DOM触发事件时,会产生一个事件对象event,这个事件对象包含着所有与事件相关的信息.既然event是事件对象,那么它必然 ...

  4. JS事件-事件处理程序-笔记总结ing...

    html事件处理程序:缺点-行为与结构耦合<input type="button" onclick = "diaoyong();"> dom0级事件 ...

  5. JavaScript事件处理程序

    JavaScript中的事件处理程序主要分为3种: HTML事件处理程序: <script type="text/javascript"> // HTML事件处理程序 ...

  6. JS:事件处理程序

    在JQuery中有个toggle事件,可以绑定两个或多个函数,可以轮流相应click事件,这两天学习到原来javascript中有两个方法(也可以说是四个)同样可以实现这个功能. #box{ marg ...

  7. js 事件处理程序 事件对象

    事件:用户或浏览器自身执行的动作: 事件处理程序:响应某个事件的函数: 事件流:从页面中接收事件的顺序. 1.DOM事件流 "DOM2级事件"规定的事件流包括三个阶段:事件捕获阶段 ...

  8. javaScript事件(二)事件处理程序

    一.事件 二.事件流 以上内容见:javaScript事件(一)事件流 三.事件处理程序 前面提到,事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字.响应 ...

  9. JavaScript:关于事件处理程序何时可以直接访问元素的属性

    指定在元素的的事件处理程序中指定 <input type="button" value="click me" onclick="alert(th ...

随机推荐

  1. Windows(x64)编译FFMPEG-2.0.1

    一.引言 公司需要做网络视频传输的相关项目,初步选定用这么几个东西FFMPEG,ORTP,Live555这么几个东东.研究了也有一个月了,把一些心得写出来,这篇文章主要介绍FFMPEG在windows ...

  2. iotBaidu问题小结

    1.后台程序不能正常运行: d:\>java -jar MqttService.jar Exception in thread "main" java.lang.Securi ...

  3. javascript 获取视口的高度和宽度

    //获取视口的高度和宽度. function windowHeight() { var de = document.documentElement; return self.innerHeight|| ...

  4. 通过shell进行数学计算

    对于基本运算,可以使用let, $(())和$[] 对于高级运算,使用expr和bc这两个工具 [hupeng@hupeng-vm shell]$n1= [hupeng@hupeng-vm shell ...

  5. 高可用服务设计之二:Rate limiting 限流与降级

    <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <nginx限制 ...

  6. selenium进阶

    一.切换 1.window窗口切换 @Test public void test3(){ System.out.println(driver.getWindowHandle()); String ol ...

  7. [UE4]C++ 动态内存分配(6种情况,好几个例子)

    1.堆内存分配 : C/C++定义了4个内存区间: 代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store). 堆的概念: 通常定义变量(或对 ...

  8. [UE4]C++创建对象的三种方式

    #include <iostream> using namespace std; class A { private: int n; public: A(int m):n(m) { } ~ ...

  9. 基于sklearn的 BaseEstimator开发接口:模型融合Stacking

    转载:https://github.com/LearningFromBest/CMB-credit-card-department-prediction-of-purchasing-behavior- ...

  10. MiniDump产生工具

    1:分析程序异常等等信息,在入口处初始化即可 //生成Dump文件信息 OS:Windows #pragma once #include <windows.h> #include < ...