任务和工作流元数据

端点 描述 输入
GET /metadata/taskdefs 获取所有任务定义 N / A
GET /metadata/taskdefs/{taskType} 检索任务定义 任务名称
POST /metadata/taskdefs 注册新任务定义 任务清单清单
PUT /metadata/taskdefs 更新任务定义 一个任务定义
DELETE /metadata/taskdefs/{taskType} 删除任务定义 任务名称
     
GET /metadata/workflow 获取所有工作流定义 N / A
POST /metadata/workflow 注册新工作流程 工作流定义
PUT /metadata/workflow 注册/更新新工作流程 工作流定义列表
GET /metadata/workflow/{name}?version= 获取工作流定义 工作流名称,版本(可选)
     

启动一个工作流

仅使用输入

POST /workflow/{name}?version=&correlationId=
{
//JSON payload for workflow
}
参数 描述
可选的。如果未指定使用最新版本的工作流程
的correlationID 用户提供的可用于检索工作流的Id

输入

JSON有效载荷启动工作流。强制性。如果工作流不期望任何输入必须传递一个空的JSON{}

产量

工作流ID(GUID)

使用输入和任务域

POST /workflow
{
//JSON payload for Start workflow request
}

启动工作流程请求

JSON用于启动工作流请求

{
"name": "myWorkflow", // Name of the workflow
"version": 1, // Version
“correlatond”: “corr1” // correlation Id
"input": {
// Input map.
},
"taskToDomain": {
// Task to domain map
}
}

产量

工作流ID(GUID)

检索工作流程

端点 描述
GET /workflow/{workflowId}?includeTasks=true|false 通过工作流标识获取工作流状态。如果设置了includeTasks,那么还包括执行和调度的所有任务。
GET /workflow/running/{name} 获取给定类型的所有正在运行的工作流
GET /workflow/running/{name}/correlated/{correlationId}?includeClosed=true|false&includeTasks=true|false 获取所有正在运行的关联标识过滤的工作流。如果includeClosed被设置,还包括完成运行的工作流。
GET /workflow/search 搜索工作流。见下文。
   

搜索工作流程

指挥机构使用Elasticsearch对工作流执行进行索引,并被搜索API使用。

GET /workflow/search?start=&size=&sort=&freeText=&query=

参数 描述
开始 页码。默认为0
尺寸 要返回的结果数
分类 排序。格式是:ASC:<fieldname>DESC:<fieldname>按字段按升序或降序排序
FREETEXT Elasticsearch支持查询。例如workflowType:“name_of_workflow”
询问 SQL like where子句。例如workflowType ='name_of_workflow'。如果提供了freeText,则为可选项。

产量

搜索结果如下所示:

{
"totalHits": 0,
"results": [
{
"workflowType": "string",
"version": 0,
"workflowId": "string",
"correlationId": "string",
"startTime": "string",
"updateTime": "string",
"endTime": "string",
"status": "RUNNING",
"input": "string",
"output": "string",
"reasonForIncompletion": "string",
"executionTime": 0,
"event": "string"
}
]
}

管理工作流程

端点 描述
PUT /workflow/{workflowId}/pause 暂停。将不再安排进一步的工作,直到恢复。当前正在运行的任务不会暂停。
PUT /workflow/{workflowId}/resume 暂停后恢复正常操作。
POST /workflow/{workflowId}/rerun 见下文。
POST /workflow/{workflowId}/restart 从一开始重新启动工作流执行。当前执行历史被擦除。
POST /workflow/{workflowId}/retry 重试最后一个失败的任务。
PUT /workflow/{workflowId}/skiptask/{taskReferenceName} 见下文。
DELETE /workflow/{workflowId} 终止正在运行的工作流。
DELETE /workflow/{workflowId}/remove 从系统中删除工作流。谨慎使用。

重新运行

从特定任务重新运行完成的工作流。

POST /workflow/{workflowId}/rerun

{
"reRunFromWorkflowId": "string",
"workflowInput": {},
"reRunFromTaskId": "string",
"taskInput": {}
}

跳过任务

taskReferenceName在运行的工作流程中跳过任务执行(指定为参数),并继续前进。可选地更新任务的输入和输出,如有效载荷中指定的。 PUT /workflow/{workflowId}/skiptask/{taskReferenceName}?workflowId=&taskReferenceName=

{
"taskInput": {},
"taskOutput": {}
}

管理任务

端点 描述
GET /tasks/{taskId} 获取任务详情。
GET /tasks/queue/all 列出待处理的任务大小。
GET /tasks/queue/all/verbose 与上述相同,包括每个分片的大小
GET /tasks/queue/sizes?taskType=&taskType=&taskType 返回给定任务类型的待处理任务的大小
   

轮询,确认和更新任务

这些是用于轮询任务的关键端点,发送ack(轮询后),最后由工作人员更新任务结果。

端点 描述
GET /tasks/poll/{taskType}?workerid=&domain= 投票任务 workerid标识为作业轮询的工作者,并domain允许轮询器轮询特定域中的任务
GET /tasks/poll/batch/{taskType}?count=&timeout=&workerid=&domain 对由指定的批次中的任务进行轮询count。这是一个长时间的轮询,连接将等到timeout或至少有1个可用项目(以较先者为准)。workerid标识为作业轮询的工作者,并domain允许轮询器轮询特定域中的任务
POST /tasks 更新任务执行的结果。请参阅下面的模式。
POST /tasks/{taskId}/ack 承认工作人员投票后收到的任务。

更新任务结果的模式

{
"workflowInstanceId": "Workflow Instance Id",
"taskId": "ID of the task to be updated",
"reasonForIncompletion" : "If failed, reason for failure",
"callbackAfterSeconds": 0,
"status": "IN_PROGRESS|FAILED|COMPLETED",
"outputData": {
//JSON document representing Task execution output
} }

轮询后承认任务

如果工作人员在轮询后无法确认任务,则重新排队任务并将其放回队列中,并在后续轮询中可用。

获取running的workflow
curl -X GET --header 'Accept: application/json' 'http://192.168.9.137:8080/api/workflow/running/<name>?version=1'
终止workflow
curl -X DELETE --header 'Accept: application/json' 'http://192.168.9.137:8080/api/workflow/<workflowId>'

启动workflow

curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/plain' -d '{}' 'http://localhost:8080/api/workflow/<name>'

conductor APIs的更多相关文章

  1. (转载)构建public APIs与CORS

    from: https://segmentfault.com/a/1190000000709909 理由:在操作层面详细的讲解了跨域的操作.尤其是对于option请求的详解.收藏. 在构建Public ...

  2. ECMAScript Web APIs node.js

    https://hacks.mozilla.org/2015/04/es6-in-depth-an-introduction/ What falls under the scope of ECMASc ...

  3. 【墙内备份】Android 6.0 APIs

    Android 6.0 APIs In this documentSHOW MORE Fingerprint Authentication Confirm Credential App Linking ...

  4. netflix:Conductor微服务编排引擎

    项目地址: https://github.com/Netflix/conductor Conductor 是 Netflix 受需要运行全球流媒体业务流程的启发,构建的基于云的微服务编排引擎. Con ...

  5. swagger:The World's Most Popular Framework for APIs.

    swagger官网:http://swagger.io/ swagger ui demo:http://petstore.swagger.io 让API文档总是与API定义同步更新,是一件非常有价值的 ...

  6. [译]Node.js : Building RESTful APIs using Loopback and MySQL

    国庆后可能就要使用StrongLoop那套东西来做项目了 原文:http://www.javabeat.net/loopback-mysql/ Loopback是什么? Loopback是一个开源的N ...

  7. URLRedirector 解决网页上无法访问 google CDN 的问题(fonts、ajax、themes、apis等)

    URLRedirector 解决网页上无法访问 google CDN 的问题(fonts.ajax.themes.apis等) 由于某些原因,在访问国外的网站时有时候会特别慢,像 stackoverf ...

  8. 谷歌正式发布Google APIs Client Library for .NET

    好消息,特大好消息! 英文原文:Google API library for .NET paves the way for Google services on Windows phone 本月 17 ...

  9. POSTMAN and HTTPie to test APIs

    http://blog.mashape.com/postman-httpie-test-apis/ We love working with APIs at Mashape, and we love ...

随机推荐

  1. 【python】split 和 join函数

    一.关于split 和 join 方法 1只针对字符串进行处理.split:拆分字符串.join连接字符串2.string.join(sep): 以string作为分割符,将sep中所有的元素(字符串 ...

  2. Keepalived stable tarball

    Keepalived stable tarball Keepalived for Linux - Version 1.3.5 - March 19, 2017 Keepalived for Linux ...

  3. Qt 常用类——QStandardItemModel

    转载:落叶知秋时 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构 ...

  4. orace学习操作(2)

    一.Oracle视图 视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑.主要就是为了方便和数据安全: 实际当中的数据依然存在我们的实际表里面,只不过取数据的时候根据这个视图(子查询)从实际 ...

  5. 未来的趋势发展 802.11v网络协议解析

    目前的无线网络中,一个基站通常与拥有最强信号的接入点联系在一起.但是,这个接入点也许过载了.在802.11v标准中,包括了一个指令,接入点能够使用这个指令要求一个基站报告它支持的无线电信道.传输的功率 ...

  6. 操他妈的,jquery1.4以上不能用toggle()轮流切换函数

    query 1.9里面已经删除了toggle(fn1, fn2)函数 (2013-05-07 13:44:27) 转载▼ 标签: it 分类: js jquery 1.9里面已经删除了toggle(f ...

  7. java字符串分解 StringTokenizer用法

    Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串.如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你. 先看个例子: 1 public ...

  8. ORM( ORM查询13种方法3. 单表的双下划线的使用 4. 外键的方法 5. 多对多的方法 ,聚合,分组,F查询,Q查询,事务 )

    必知必会13条 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或 ...

  9. [Python] 分段线性插值

    利用线性函数做插值 每一段的线性函数: #Program 0.6 Linear Interploation import numpy as np import matplotlib.pyplot as ...

  10. 《图像处理实例》 之 目标旋转矫正(基于区域提取、DFT变换)

    目标:1.把矩形旋转正.          2.把文字旋转校正.                                                                     ...