如何获取名称空间中所有工作流的搜索属性

问题描述

如何由外部客户端获取名称空间或taskQueue(不想提供工作流ID)中所有工作流的搜索属性?我正在使用Java SDK。

下面是工作流和添加搜索属性的示例代码。在代码中,WorkflowExecution用于获取搜索属性,但必须将工作流ID作为输入参数。我正在寻找一种无需提供工作流ID即可获取名称空间的所有工作流和搜索属性的解决方案。

WorkflowServiceStubs服务= WorkflowServiceStubs.newInstance();

WorkflowClientOptions clientOptios =
    WorkflowClientOptions.newBuilder().setNamespace("samples-namespace").build();

WorkflowClient client = WorkflowClient.newInstance(service,clientOptios);

WorkerFactory factory = WorkerFactory.newInstance(client);

Worker worker = factory.newWorker(TASK_QUEUE);
worker.registerWorkflowImplementationTypes(MyClass.MyWorkflowImpl.class);

worker.registerActivitiesImplementations(new MyClass.MyActivitiesImpl());

factory.start();

String workflowID = UUID.randomUUID().toString();

WorkflowOptions workflowOptions =
    WorkflowOptions.newBuilder()
        .setTaskQueue(TASK_QUEUE)
        .setWorkflowId(workflowID)
        .setSearchAttributes(generateSearchAttributes())
        .build();

HelloSearchAttributes.GreetingWorkflow workflow =
    client.newWorkflowStub(MyClass.MyWorkflowImpl.class,workflowOptions);

WorkflowExecution执行= WorkflowExecution.newBuilder()。setWorkflowId(workflowID).build();

DescribeWorkflowExecutionRequest请求= DescribeWorkflowExecutionRequest.newBuilder() .setNamespace(client.getOptions()。getNamespace()) .setExecution(执行) .build();

    DescribeWorkflowExecutionResponse resp =
        service.blockingStub().describeWorkflowExecution(request);

SearchAttributes searchAttributes = resp.getWorkflowExecutionInfo()。getSearchAttributes();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)