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. <<精通正在表达式>> 书评

     IT产业新技术日新月异,令人目不暇给,然而在这其中,真正称得上伟大东西的却寥寥无几.1998年,被誉为“软件世界的爱迪生”,发明了BSD. TCP/IP.csh.vi和NFS的SUN首席科学家Bil ...

  2. vue 感觉很好的渲染模式

    <ul v-if="todos.length"> <li v-for="todo in todos"> {{ todo }} </ ...

  3. java web程序 jdbc连接数据库错误排查方法

    学习jsp.我遇到了麻烦,我总是看不懂500错误,因为每次都显示整个页面的错误,都是英文 我看不懂,后来,把他弄烦了,我也烦了,比起学习java.那个异常可以很简单的就知道.现在解决 了第一个问题,5 ...

  4. Spring IOC - 控制反转(依赖注入) - 配置初始化和销毁的方法

    在Spring中如果某个bean在初始化之后,或销毁之前要做一些额外操作可以为该bean配置初始化和销毁的我方法,在这些方法中完成需要的功能. 实验: 通过断点调试模式,测试初始化方法和销毁方法的执行 ...

  5. JQuery基础(选择器、事件、DOM操作)

    一.选择器 1.基本选择器 ①id选择器       ②class选择器       ③标签名选择 ④并列选择          ⑤后代选择 代码用法展示: <title></tit ...

  6. 1031 Hello World for U (20 分)

    1031 Hello World for U (20 分) Given any string of N (≥5) characters, you are asked to form the chara ...

  7. javascript继承之原型链(一)

    function Father() { this.fatherValue = "爸爸"; } Father.prototype.getFatherValue = function ...

  8. javascript的面向对象思想知识要点

    获取数据类型 typeof undefined:访问某个不存在的或未经赋值的变量时就会得到一个 undefined,用typeof 获取类型,得到的也是undefined;null:它不能通过java ...

  9. Scrapyd发布爬虫的工具

    Scrapyd Scrapyd是部署和运行Scrapy.spider的应用程序.它使您能够使用JSON API部署(上传)您的项目并控制其spider. Scrapyd-client Scrapyd- ...

  10. 【洛谷】P1641 [SCOI2010]生成字符串(思维+组合+逆元)

    题目 传送门:QWQ 分析 不想画图. https://www.luogu.org/problemnew/solution/P1641 好神仙的题啊. 代码 // luogu-judger-enabl ...