Esegui 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+porta o l'indirizzo BNS della richiesta) - `method` (il nome del metodo per la richiesta) - `request` (la protostringa 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 proto:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
quindi chiama questa operazione con gli argomenti: address = "localhost:2345"
method = "MyService/MyMethod"
Il tensore "request" è un tensore di stringa che rappresenta le stringhe "MyRequestProto" serializzate; e il tensore della stringa di output "response" avrà la stessa forma e conterrà (in caso di completamento positivo) le stringhe "MyResponseProto" serializzate corrispondenti.Ad esempio, per inviare un singolo, vuoto, `MyRequestProto`, chiama questa operazione con `request = ""`. Per inviare 5 richieste parallele vuote, chiama questa operazione con `request = ["", "", "", "", ""]`.
Più in generale, è possibile creare un batch di prototipi serializzati "MyRequestProto" da tensori batch regolari utilizzando l'operazione "encode_proto" e convertire i prototipi serializzati "MyResponseProto" di risposta in tensori batch utilizzando l'operazione "decode_proto".
NOTA Lavorare con stringhe proto serializzate è più veloce che istanziare oggetti proto reali in memoria, quindi non è previsto alcun degrado delle prestazioni rispetto alla scrittura di kernel personalizzati per questo flusso di lavoro.
A differenza dell'operazione "Rpc" standard, se la connessione fallisce o il lavoratore remoto restituisce uno stato di errore, questa operazione non solleva nuovamente 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 "risposta" conterrà valori di risposta validi per quelle voci minibatch le cui RPC non hanno fallito; il resto delle voci avrà stringhe vuote.
Classi nidificate
classe | TryRpc.Options | Attributi facoltativi per TryRpc |
Metodi pubblici
TryRpc statico | create (ambito dell'ambito , indirizzo dell'operando <String>, metodo dell'operando <String>, richiesta dell'operando <String>, opzioni... opzioni) Metodo factory per creare una classe che racchiude una nuova operazione TryRpc. |
TryRpc.Options statico | failFast (failFast booleano) |
TryRpc.Options statico | protocollo (protocollo String) |
Uscita <Stringa> | risposta () Stessa forma di "richiesta". |
Output <Intero> | codicestato () Stessa forma di "richiesta". |
Uscita <Stringa> | messaggio di stato () Stessa forma di "richiesta". |
TryRpc.Options statico | timeoutInMs (TimeoutInMs lungo) |
Metodi ereditati
Metodi pubblici
creazione TryRpc pubblica statica (ambito ambito , indirizzo operando <String>, metodo operando <String>, richiesta operando <String>, opzioni... )
Metodo factory per creare una classe che racchiude una nuova operazione TryRpc.
Parametri
portata | ambito attuale |
---|---|
indirizzo | "0-D" o "1-D". L'indirizzo (ovvero nome_host:porta) del server RPC. Se questo tensore ha più di 1 elemento, vengono inviate più richieste rpc parallele. Questo argomento viene trasmesso 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 viene trasmesso con "indirizzo" e "richiesta". |
richiesta | "0-D" o "1-D". Stringhe prototipate serializzate: l'argomento della richiesta rpc. Se questo tensore ha più di 1 elemento, vengono inviate più richieste rpc parallele. Questo argomento viene trasmesso con "indirizzo" e "metodo". |
opzioni | trasporta valori di attributi opzionali |
Ritorni
- una nuova istanza di TryRpc
public static TryRpc.Options failFast (failFast booleano)
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. La stringa vuota indica l'utilizzo del protocollo predefinito. Le opzioni includono 'grpc'. |
---|
risposta pubblica <String> di output ()
Stessa forma di "richiesta". Stringhe prototipate serializzate: le risposte rpc.
output pubblico <intero> statusCode ()
Stessa forma di "richiesta". I valori corrispondono ai codici di enumerazione dello 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 (timeoutInMs lungo)
Parametri
timeoutInMs | "int". Se "0" (impostazione predefinita), il kernel eseguirà la richiesta RPC e andrà in timeout solo se scade la scadenza RPC o se la sessione scade. Se questo valore è maggiore di "0", l'operazione solleverà un'eccezione se l'RPC impiega più tempo di "timeout_in_ms". |
---|