У меня есть простой двунаправленный протокольный интерфейс rpc, такой как:
rpc RouteData(stream RouteNote) returns (stream ProcessedRouteNote) {}
Дело в том, что это может занять некоторое время, пока я не смогу вернуть ProcessedRouteNote
.
Я хотел бы знать, каков рекомендуемый способ хранения подключенного клиента, чтобы я мог отправить ответный поток (например, «ProcessedRouteNote») позднее?
"def RouteData(self, request_iterator, servicer_context)"
ЭтоПохоже, что сохранение " request_iterator " для "def RouteData", которое является " RpcMethodHandler ", и последующий вызов stream_stream будет выполнять эту работу.
Буду признателен за любые отзывы.
Возможно, я мог бы еще больше упростить этот вопрос, спросив: Как я могу отправить данные / ответ конкретному клиентучто ранее отправлял запрос (двунаправленный) на сервер?Следует отметить, что целью является отправка ответа не в контексте обработчика RPC сервера.Более того, может быть десяток запросов, но только один ответ.Поэтому мне не интересно блокировать обработчик RPC для ожидания ответа.Я действительно надеюсь, что это возможно с grpc, в противном случае это действительно нарушает условия сделки для нас.
Спасибо, Майк