Как использовать Google Cloud get_operation? - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь использовать функцию OperationsClient get_operation(), чтобы я мог опросить долго выполняющуюся задачу и получить ее статус.

https://google -cloud-python.readthedocs.io/en/stable/core/operations_client.html#google.api_core.operations_v1.OperationsClient.get_operation

Код выглядит довольно просто:

api = operations_v1.OperationsClient()
response = api.get_operation(name)

Однако инициализация OperationClient требуется канал: OperationsClient(channel).Я не знаю, что делает канал или как он создан.

Любая помощь приветствуется.Спасибо

Ответы [ 2 ]

2 голосов
/ 08 марта 2019

Из документов, с которыми вы связаны:

channel ( grpc.Channel ) - канал gRPC, связанный сслужба, которая реализует интерфейс google.longrunning.operations.

Так что, если это ваша собственная служба gRPC, вы захотите сделать что-то вроде:

import grpc
channel = grpc.insecure_channel('localhost:50051')
api = operations_v1.OperationsClient(channel)
response = api.get_operation(name)

В зависимости от того, что долгоЗапустив службу, которую вы пытаетесь опросить, вам может понадобиться использовать ее канал.

0 голосов
/ 09 марта 2019

Вот код, который я использовал в итоге.

operation = self.stt_client.transport._operations_client.get_operation(operation_name)
response = operation_core.from_gapic(
            operation,
            self.stt_client.transport._operations_client,
            types.LongRunningRecognizeResponse,
            metadata_type=types.LongRunningRecognizeMetadata,
        )
...