0

外部クライアントによって名前空間または 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();

4

1 に答える 1