Выполнение пакетов запросов RPC.
Эта операция асинхронно выполняет либо один запрос RPC, либо пакет запросов. Запросы RPC определяются тремя основными параметрами:
- "адрес" (хост+порт или адрес BNS запроса) - "метод" (имя метода запроса) - "запрос" (сериализованная прото-строка или вектор строк аргумента запроса RPC).
Например, если у вас есть служба RPC, работающая на порту localhost:2345, и ее интерфейс настроен с использованием следующего объявления прототипа:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
затем вызовите эту операцию с аргументами: address = "localhost:2345"
method = "MyService/MyMethod"
Тензор запроса — это строковый тензор, представляющий сериализованные строки MyRequestProto; и тензор выходной строки `response` будет иметь ту же форму и содержать (после успешного завершения) соответствующие сериализованные строки `MyResponseProto`.Например, чтобы отправить один пустой `MyRequestProto`, вызовите эту операцию с `request = ""`. Чтобы отправить 5 параллельных пустых запросов, вызовите эту операцию с `request = ["", "", "", "", ""]`.
В более общем смысле, можно создать пакет сериализованных прототипов MyRequestProto из обычных пакетных тензоров с помощью операции encode_proto и преобразовать сериализованные прототипы ответа MyResponseProto в пакетные тензоры с помощью операции decode_proto.
ПРИМЕЧАНИЕ. Работа с сериализованными строками прототипов выполняется быстрее, чем создание экземпляров реальных объектов прототипов в памяти, поэтому не ожидается снижения производительности по сравнению с написанием собственных ядер для этого рабочего процесса.
В отличие от стандартной операции Rpc, если соединение не установлено или удаленный работник возвращает статус ошибки, эта операция не вызывает повторное исключение. Вместо этого записи `status_code` и `status_message` для соответствующего вызова RPC устанавливаются с ошибкой, возвращаемой из вызова RPC. Тензор `response` будет содержать действительные значения ответа для тех записей мини-пакета, RPC которых не завершились сбоем; остальные записи будут иметь пустые строки.
Вложенные классы
сорт | ПопробуйтеRpc.Options | Дополнительные атрибуты для TryRpc |
Константы
Нить | OP_NAME | Название этой операции, известное основному движку TensorFlow. |
Публичные методы
статический TryRpc | create ( Область действия , Операнд < TString > адрес, Операнд < TString > метод, Операнд < TString > запрос, Параметры... параметры) Фабричный метод для создания класса, обертывающего новую операцию TryRpc. |
статический TryRpc.Options | FailFast (логическое значение FailFast) |
статический TryRpc.Options | протокол (строковый протокол) |
Вывод < TString > | ответ () Та же форма, что и «запрос». |
Вывод < TInt32 > | кодстатуса () Та же форма, что и «запрос». |
Вывод < TString > | статусСообщение () Та же форма, что и «запрос». |
статический TryRpc.Options | timeoutInMs (Длинный таймаутInMs) |
Унаследованные методы
Константы
общедоступная статическая финальная строка OP_NAME
Название этой операции, известное основному движку TensorFlow.
Публичные методы
public static TryRpc create (область действия , адрес операнда < TString >, метод операнда < TString >, запрос операнда < TString >, параметры... параметры)
Фабричный метод для создания класса, обертывающего новую операцию TryRpc.
Параметры
объем | текущий объем |
---|---|
адрес | `0-D` или `1-D`. Адрес (т. е. имя_хоста:порт) сервера RPC. Если этот тензор имеет более 1 элемента, то отправляется несколько параллельных запросов RPC. Этот аргумент передается с помощью `method` и `request`. |
метод | `0-D` или `1-D`. Адрес метода на сервере RPC. Если этот тензор имеет более 1 элемента, то отправляется несколько параллельных запросов RPC. Этот аргумент передается с адресом и запросом. |
запрос | `0-D` или `1-D`. Сериализованные строки прототипа: аргумент запроса rpc. Если этот тензор имеет более 1 элемента, то отправляется несколько параллельных запросов RPC. Этот аргумент передается с адресом и методом. |
параметры | содержит значения необязательных атрибутов |
Возврат
- новый экземпляр TryRpc
общедоступный статический TryRpc.Options FailFast (логическое значение FailFast)
Параметры
неудачный быстрый | `логическое`. Если true (по умолчанию), то сбои подключения (т. е. сервер не отвечает немедленно) приводят к сбою RPC. |
---|
общедоступный статический протокол TryRpc.Options (строковый протокол)
Параметры
протокол | Используемый протокол RPC. Пустая строка означает использование протокола по умолчанию. Опции включают «grpc». |
---|
публичный вывод < TString > ответ ()
Та же форма, что и «запрос». Сериализованные прото-строки: ответы RPC.
публичный вывод <TInt32> statusCode ()
Та же форма, что и «запрос». Значения соответствуют кодам перечисления статуса тензорного потока.
публичный вывод < TString > statusMessage ()
Та же форма, что и «запрос». Значения соответствуют сообщениям о состоянии, возвращаемым вызовами RPC.
общедоступный статический TryRpc.Options timeoutInMs (Long timeoutInMs)
Параметры
таймаутИнМс | `инт`. Если `0` (по умолчанию), ядро выполнит запрос RPC и истечет время ожидания только в том случае, если истекает крайний срок RPC или истекает время сеанса. Если это значение больше «0», то операция вызовет исключение, если RPC займет больше времени, чем «timeout_in_ms». |
---|