Как сохранить RPC открытым в Python - PullRequest
1 голос
/ 04 апреля 2019

Я работаю над клиентом gRPC в Python, который должен получать уведомления от сервера, написанного на c ++. Проблема, с которой я сталкиваюсь, заключается в том, что когда я вызываю поток rpc, он мгновенно закрывается, что приводит к тому, что я подписываюсь и отписываюсь в потоке уведомлений и пропускаю уведомления, когда я отписываюсь. Есть ли способ предотвратить закрытие rpc в python?

RPC имеет формат уведомлений (stream messagesRequest), возвращает (stream messagesReply)

Код, который непрерывно подписывается и отписывается, выглядит следующим образом

request = server_pb2.NotificationRequest()
requests = [request]

while True:
    responses = stub.notification(iter(requests))
    for response in responses:
        print(response.node.id, int(response.id))

При выполнении rpc только один раз, когда журнал сервера показывает закрытие rpc сразу после его выполнения.

responses = stub.notification(iter(requests))

Какие изменения должны быть внесены в запрос на неограниченный срок хранения rpc?

...