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