Eseguire batch di richieste RPC.
Questa operazione esegue in modo asincrono una singola richiesta RPC o un batch di richieste. Le richieste RPC sono definite da tre parametri principali:
- `address` (l'host + la porta o l'indirizzo BNS della richiesta) -` method` (il nome del metodo per la richiesta) - `request` (la proto stringa serializzata, o vettore di stringhe, dell'argomento della richiesta RPC).
Ad esempio, se hai un servizio RPC in esecuzione sulla porta localhost: 2345 e la sua interfaccia è configurata con la seguente dichiarazione di proto:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
, chiama questo op con argomenti: address = "localhost:2345"
method = "MyService/MyMethod"
Il tensore `request` è un tensore di stringa che rappresenta` MyRequestProto` serializzato stringhe; e il tensore della stringa di output `response` avrà la stessa forma e conterrà (al completamento con successo) le corrispondenti stringhe serializzate` MyResponseProto`.Ad esempio, per inviare un singolo, vuoto, `MyRequestProto`, chiama questo op con` request = "" `. Per inviare 5 richieste vuote parallele , chiama questo op con `request = [" "," "," "," "," "]`.
Più in generale, si può creare un batch di protos serializzati `MyRequestProto` da tensori in batch regolari usando l'operazione` encode_proto` e convertire i protos serializzati di risposta `MyResponseProto` in tensori in batch usando l'op` decode_proto`.
NOTA Lavorare con proto stringhe serializzate è più veloce che istanziare oggetti proto effettivi in memoria, quindi non è previsto alcun degrado delle prestazioni rispetto alla scrittura di kernel personalizzati per questo flusso di lavoro.
A differenza dell'operazione standard `Rpc`, se la connessione fallisce o il lavoratore remoto restituisce uno stato di errore, questa operazione non ripristina l'eccezione. Invece, la voce `status_code` e` status_message` per la chiamata RPC corrispondente viene impostata con l'errore restituito dalla chiamata RPC. Il tensore `response` conterrà valori di risposta validi per quelle voci di minibatch i cui RPC non hanno avuto esito negativo; il resto delle voci avrà stringhe vuote.
Classi annidate
classe | TryRpc.Options | Attributi opzionali perTryRpc |
Metodi pubblici
TryRpc statico | |
static TryRpc.Options | failFast (booleano failFast) |
static TryRpc.Options | protocollo ( protocollo String) |
Output <String> | risposta () Stessa forma di "richiesta". |
Output <Integer> | statusCode () Stessa forma di "richiesta". |
Output <String> | statusMessage () Stessa forma di "richiesta". |
static TryRpc.Options | timeoutInMs ( TimeoutInM lunghi) |
Metodi ereditati
Metodi pubblici
public static TryRpc creare ( Ambito di applicazione, operando <String> indirizzo, operando <String> metodo, operando <String> richiesta, Opzioni ... Opzioni)
Metodo di fabbrica per creare una classe che avvolge una nuova operazione TryRpc.
Parametri
scopo | ambito attuale |
---|---|
indirizzo | "0-D" o "1-D". L'indirizzo (ad esempio nome_host: porta) del server RPC. Se questo tensore ha più di 1 elemento, vengono inviate più richieste rpc parallele. Questo argomento trasmette con "metodo" e "richiesta". |
metodo | "0-D" o "1-D". L'indirizzo del metodo sul server RPC. Se questo tensore ha più di 1 elemento, vengono inviate più richieste rpc parallele. Questo argomento trasmette con "address" e "request". |
richiesta | "0-D" o "1-D". Proto stringhe serializzate: l'argomento della richiesta rpc. Se questo tensore ha più di 1 elemento, vengono inviate più richieste rpc parallele. Questo argomento trasmette con "indirizzo" e "metodo". |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di TryRpc
public static TryRpc.Options failFast (Boolean failFast)
Parametri
failFast | "booleano". Se "true" (impostazione predefinita), gli errori di connessione (ovvero, il server non risponde immediatamente) causano un errore RPC. |
---|
protocollo TryRpc.Options statico pubblico (protocollo String)
Parametri
protocollo | Protocollo RPC da utilizzare. Una stringa vuota significa utilizzare il protocollo predefinito. Le opzioni includono "grpc". |
---|
output pubblico <String> risposta ()
Stessa forma di "richiesta". Proto stringhe serializzate: le risposte rpc.
public Output <Integer> statusCode ()
Stessa forma di "richiesta". I valori corrispondono ai codici enum di stato tensorflow.
output pubblico <String> statusMessage ()
Stessa forma di "richiesta". I valori corrispondono ai messaggi di stato restituiti dalle chiamate RPC.
public static TryRpc.Options timeoutInMs (Long timeoutInMs)
Parametri
timeoutInMs | "int". Se "0" (impostazione predefinita), il kernel eseguirà la richiesta RPC e scadrà solo se la scadenza RPC passa o la sessione scade. Se questo valore è maggiore di "0", l'operazione solleverà un'eccezione se RPC impiega più tempo di "timeout_in_ms". |
---|