RPCリクエストのバッチを実行します。
この操作は、単一のRPC要求または要求のバッチのいずれかを非同期的に実行します。 RPCリクエストは、次の3つの主要なパラメータによって定義されます。
-`address`(リクエストのホスト+ポートまたはBNSアドレス)-`method`(リクエストのメソッド名)-` request`(RPCリクエスト引数のシリアル化されたプロト文字列または文字列のベクトル)。
たとえば、ポートlocalhost:2345でRPCサービスを実行していて、そのインターフェイスが次のproto宣言で構成されている場合:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
次に、引数を指定してこのopを呼び出します:address = "localhost:2345"
method = "MyService/MyMethod"
`request`テンソルは、シリアル化された` MyRequestProto`を表す文字列テンソルです文字列;また、出力文字列テンソル `response`は同じ形状を持ち、(正常に完了すると)対応するシリアル化された` MyResponseProto`文字列を含みます。たとえば、単一の空の `MyRequestProto`を送信するには、` request = "" `を指定してこの操作を呼び出します。 5つの並列の空の要求を送信するには、このopを `request = [" "、" "、" "、" "、" "]`で呼び出します。
より一般的には、 `encode_proto`opを使用して通常のバッチテンソルから` MyRequestProto`シリアル化されたプロトのバッチを作成し、 `decode_proto`opを使用して応答` MyResponseProto`シリアル化されたプロトをバッチテンソルに変換できます。
注シリアル化されたプロト文字列の操作は、メモリ内の実際のプロトオブジェクトをインスタンス化するよりも高速であるため、このワークフローのカスタムカーネルを作成する場合と比較して、パフォーマンスの低下は予想されません。
標準の `Rpc`操作とは異なり、接続が失敗した場合、またはリモートワーカーがエラーステータスを返した場合、この操作は例外を再発生させません。代わりに、対応するRPC呼び出しの `status_code`および` status_message`エントリは、RPC呼び出しから返されたエラーで設定されます。 `response`テンソルには、RPCが失敗しなかったミニバッチエントリの有効な応答値が含まれます。残りのエントリには空の文字列が含まれます。
ネストされたクラス
クラス | TryRpc.Options | TryRpc オプションの属性 |
パブリックメソッド
静的TryRpc | |
静的TryRpc.Options | failFast (ブール値failFast) |
静的TryRpc.Options | プロトコル(文字列プロトコル) |
出力<文字列> | 応答() `request`と同じ形。 |
出力<整数> | statusCode () `request`と同じ形。 |
出力<文字列> | statusMessage () `request`と同じ形。 |
静的TryRpc.Options | timeoutInMs (長いtimeoutInMs) |
継承されたメソッド
パブリックメソッド
public static TryRpc create (スコープスコープ、 Operand <String>アドレス、 Operand <String>メソッド、 Operand <String>リクエスト、オプション...オプション)
新しいTryRpc操作をラップするクラスを作成するファクトリメソッド。
パラメーター
範囲 | 現在のスコープ |
---|---|
住所 | `0-D`または` 1-D`。 RPCサーバーのアドレス(つまり、host_name:port)。このテンソルに複数の要素がある場合、複数の並列rpcリクエストが送信されます。この引数は `method`と` request`でブロードキャストします。 |
方法 | `0-D`または` 1-D`。 RPCサーバー上のメソッドアドレス。このテンソルに複数の要素がある場合、複数の並列rpcリクエストが送信されます。この引数は `address`と` request`でブロードキャストします。 |
リクエスト | `0-D`または` 1-D`。シリアル化されたプロト文字列:rpcリクエスト引数。このテンソルに複数の要素がある場合、複数の並列rpcリクエストが送信されます。この引数は `address`と` method`でブロードキャストします。 |
オプション | オプションの属性値を運ぶ |
戻り値
- TryRpcの新しいインスタンス
public static TryRpc.Options failFast (ブール値failFast)
パラメーター
failFast | `ブール`。 `true`(デフォルト)の場合、接続に失敗すると(つまり、サーバーがすぐに応答しない)、RPC障害が発生します。 |
---|
public static TryRpc.Optionsプロトコル(文字列プロトコル)
パラメーター
プロトコル | 使用するRPCプロトコル。空の文字列は、デフォルトのプロトコルを使用することを意味します。オプションには「grpc」が含まれます。 |
---|
public static TryRpc.Options timeoutInMs (Long timeoutInMs)
パラメーター
timeoutInMs | `int`。 `0`(デフォルト)の場合、カーネルはRPC要求を実行し、RPCの期限が過ぎるか、セッションがタイムアウトした場合にのみタイムアウトします。この値が `0`より大きい場合、RPCが` timeout_in_ms`より長くかかると、opは例外を発生させます。 |
---|