任务
任务负责在API上执行所有异步工作负载,例如与外部服务建立会话以及检索和处理数据。
任务通常是作为会话资源创建的一部分或在执行轮询期间创建的。
任务返回的任何数据都由任何关联的结果资源描述。
一些主要涉及系统和组织管理的任务可能不针对用户,源或会话,或者与轮询相关联。此类任务的示例是存储和webhook配置测试任务。
属性
名称 | 类型 | 描述 |
---|---|---|
id | 任务ID | 资源标识符。 |
resource | 字符串,总是task | 资源类型说明符。 |
organisation | 组织ID | 资源所属的组织。 |
key | 密钥ID | 与此任务相关的关键。 |
user | 可选的用户ID | 与此任务关联的用户。 |
source | 可选的源ID | 此任务所针对的来源。 |
session | 可选的会话ID | 此任务使用的会话。 |
poll | 可选,轮询ID | 轮询此任务与之关联。 |
source_type | 可选,字符串 | 此任务所针对的源类型。 |
type | 串 | 任务的任务类型。 |
target | 串 | 任务的最高级别参数。例如, data 类型任务将具有它正在检索的数据类型作为目标(即messages.sms )。 |
state | 串 | 其中之一: pending processing , pending processing , suspended , succeeded , failed 。 |
results | 列出包含结果资源的对象 | 执行任务后发布的所有结果。 |
error | 可选,字符串 | 填充错误代码,如果发生错误代码。 |
date_created | 约会时间 | 资源创建时。 |
date_started | 可选,日期时间 | 任务处理开始时。 |
date_completed | 可选,日期时间 | 任务完成时完成。 |
来源类型
如果任务与源关联,则源的类型将非规范化到source_type
任务属性上。这有助于简化对特定类型任务的查询。
种类
任务类型是一个标识在API中执行的基础任务的短标记。
如果任务涉及针对资源的活动,例如测试webhook配置,则其格式将类似于webhook_config.test
。
如果任务针对特定的源,则source_type
属性将存储与源相关的信息,而type
属性仅存储主操作。例如,创建会话将触发针对icloud.account
类型的源创建一个session.init
任务。
目标
这指定了基础任务的目标,并不总是设置。例如, webhook_config.test
的目标将是要测试的webhook配置的ID。对于针对icloud.account
类型源的data
任务,它将是要检索的数据类型,如messages.whatsapp
。
州
-
pending
完成任务已创建,但当前正在队列中等待。 - API工作者正在执行
processing
任务。 -
suspended
任务正在等待阻止任务完成,然后再继续。 -
succeeded
完成任务,没有错误。 - 任务
failed
,遇到错误。
错误
如果任务在处理期间遇到问题,则将使用遇到的错误代码设置此字段。
变更日志
2020-02-20
- 重大任务对象的
results
属性现在是嵌套列表对象,而不是简单的列表属性。
2019-10-16
- 任务对象的
state
属性现在可以具有suspended
的值。这表明API正在等待Reincubate Relay应用程序完成操作,例如文件上载或元数据更新,以使其恢复并完成任务。
检索GET /tasks/{task ID}
使用cURL
curl https://ricloud-api.reincubate.com/tasks/<task ID> \ -H 'Authorization: Token <your key_token>'
使用ricloud-py
import ricloud task = ricloud.Task.retrieve(<task ID>)
样品回复
{ "id": "00000001-1234-1234-1234-9876543210", "resource": "task", "organisation": 1, "key": 1, "user": 1, "source": 1, "session": "00000002-1234-1234-1234-9876543210", "poll": "00000003-1234-1234-1234-9876543210", "source_type": "mocks.mock", "type": "info", "target": null, "results": { "data": [], "has_more": false, "total_count": 1, "url": "/tasks/00000001-1234-1234-1234-9876543210/results" }, "state": "processing", "error": null, "date_created": "2020-02-20T11:59:15.110451Z", "date_started": "2020-02-20T11:59:15.207932Z", "date_completed": null }
列出GET /tasks
参数
名称 | 类型 | 描述 |
---|---|---|
key | 密钥ID | 按关联组织过滤。 |
user | 用户身份 | 由关联用户过滤。 |
source | 来源ID | 按相关来源过滤。 |
session | 会话ID | 按关联的会话过滤。 |
poll | 民意调查ID | 按照拥有的民意调查进行筛选。 |
source_type | 串 | 按源类型过滤。 |
type | 串 | 按任务类型过滤。 |
state | 串 | 按任务状态过滤。 |
date_created | 日期时间过滤器 | 按资源创建日期过滤。 |
date_started | 日期时间过滤器 | 任务开始处理时的过滤条件。 |
date_completed | 日期时间过滤器 | 任务完成处理时的过滤条件。 |
使用cURL
curl https://ricloud-api.reincubate.com/tasks \ -H 'Authorization: Token <your key_token>'
使用ricloud-py
import ricloud tasks = ricloud.Task.list()