首页 > 解决方案 > uber cadence :: 想要在工作流中存储一个对象

问题描述

想要将对象存储在工作流中,然后希望通过 cadence api 接收它。

ListOpenWorkflowExecutionsRequest listOpenWorkflowExecutionsRequest=new ListOpenWorkflowExecutionsRequest();
listOpenWorkflowExecutionsRequest.setDomain(DOMAIN);
listOpenWorkflowExecutionsRequest.setStartTimeFilter(startTimeFilter);
ListOpenWorkflowExecutionsResponse response=
        cadenceService.ListOpenWorkflowExecutions(listOpenWorkflowExecutionsRequest);*

我愿意接受任何解决方案。

标签: uber-apicadence-workflowtemporal-workflow

解决方案


使用QueryWorkflowExecutionAPI 从单个工作流中检索信息。

列表API 用于获取工作流列表,而无需直接查询它们。您可以将自定义信息(称为备忘录)附加到列表 API 返回的可见性记录。使用WorkflowOptions.memo属性来添加它。

备忘录不可索引。如果您希望能够对自定义属性进行索引,请使用搜索属性功能。搜索属性的另一个特性是它们可以使用upsertSearchAttributesAPI 从工作流代码更新。因此,例如,如果工作流代码在每个状态转换时更新“状态”属性,那么就有可能找到处于给定状态的所有工作流。此外,所有搜索属性都由列表 API 返回,因此即使它们不是搜索谓词的一部分,它们的值也可以显示在 UI 列表视图中。请注意,这需要启用 Elastic Search 集群集成。


推荐阅读