RPC 요청 일괄 처리를 수행합니다.
이 작업은 단일 RPC 요청 또는 요청 일괄 처리를 비동기식으로 수행합니다. RPC 요청은 세 가지 주요 매개변수로 정의됩니다.
- `address`(요청의 호스트+포트 또는 BNS 주소) - `method`(요청의 메서드 이름) - `request`(RPC 요청 인수의 직렬화된 프로토 문자열 또는 문자열 벡터).
예를 들어, localhost:2345 포트에서 실행되는 RPC 서비스가 있고 해당 인터페이스가 다음 proto 선언으로 구성된 경우:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
그런 다음 인수를 사용하여 이 작업을 호출합니다: address = "localhost:2345"
method = "MyService/MyMethod"
`request` 텐서는 다음을 나타내는 문자열 텐서입니다. 직렬화된 `MyRequestProto` 문자열; 출력 문자열 텐서 `response`는 동일한 모양을 가지며 (성공적으로 완료되면) 해당 직렬화된 `MyResponseProto` 문자열을 포함합니다.예를 들어 비어 있는 단일 `MyRequestProto`를 보내려면 `request = ""`를 사용하여 이 작업을 호출하세요. 5개의 병렬 빈 요청을 보내려면 `request = ["", "", "", "", ""]`를 사용하여 이 작업을 호출합니다.
더 일반적으로는 `encode_proto` 작업을 사용하여 일반 배치 텐서에서 `MyRequestProto` 직렬화된 proto 배치를 생성하고 `decode_proto` 작업을 사용하여 응답 `MyResponseProto` 직렬화된 proto를 배치 텐서로 변환할 수 있습니다.
참고 직렬화된 proto 문자열로 작업하는 것은 메모리에서 실제 proto 개체를 인스턴스화하는 것보다 빠르므로 이 워크플로에 대한 사용자 정의 커널을 작성하는 것과 비교해 성능 저하가 예상되지 않습니다.
표준 `Rpc` 작업과 달리 연결이 실패하거나 원격 작업자가 오류 상태를 반환하는 경우 이 작업은 예외를 다시 발생시키지 않습니다 . 대신 해당 RPC 호출에 대한 'status_code' 및 'status_message' 항목은 RPC 호출에서 반환된 오류로 설정됩니다. '응답' 텐서는 RPC가 실패하지 않은 미니배치 항목에 대한 유효한 응답 값을 포함합니다. 나머지 항목에는 빈 문자열이 있습니다.
중첩 클래스
수업 | TryRpc.Options | TryRpc 의 선택적 속성 |
공개 방법
정적 TryRpc | |
정적 TryRpc.Options | 실패Fast (부울 실패Fast) |
정적 TryRpc.Options | 프로토콜 (문자열 프로토콜) |
출력 <문자열> | 응답 () `요청`과 같은 모양입니다. |
출력 <정수> | 상태코드 () `요청`과 같은 모양입니다. |
출력 <문자열> | 상태메시지 () `요청`과 같은 모양입니다. |
정적 TryRpc.Options | timeoutInMs (긴 timeoutInMs) |
상속된 메서드
공개 방법
public static TryRpc create ( 범위 범위, Operand <String> 주소, Operand <String> 메서드, Operand <String> 요청, Options... 옵션)
새로운 TryRpc 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
매개변수
범위 | 현재 범위 |
---|---|
주소 | '0-D' 또는 '1-D'. RPC 서버의 주소(예: 호스트 이름:포트)입니다. 이 텐서에 요소가 2개 이상 있으면 여러 개의 병렬 rpc 요청이 전송됩니다. 이 인수는 'method' 및 'request'로 브로드캐스트됩니다. |
방법 | '0-D' 또는 '1-D'. RPC 서버의 메서드 주소입니다. 이 텐서에 요소가 2개 이상 있으면 여러 개의 병렬 rpc 요청이 전송됩니다. 이 인수는 '주소' 및 '요청'으로 브로드캐스트됩니다. |
요구 | '0-D' 또는 '1-D'. 직렬화된 proto 문자열: rpc 요청 인수. 이 텐서에 요소가 2개 이상 있으면 여러 개의 병렬 rpc 요청이 전송됩니다. 이 인수는 `address`와 `method`를 사용하여 브로드캐스트됩니다. |
옵션 | 선택적 속성 값을 전달합니다. |
보고
- TryRpc의 새 인스턴스
공개 정적 TryRpc.Options 실패Fast (부울 실패Fast)
매개변수
실패빠름 | '부울'. 'true'(기본값)인 경우 연결 실패(즉, 서버가 즉시 응답하지 않음)로 인해 RPC 오류가 발생합니다. |
---|
공개 정적 TryRpc.Options 프로토콜 (문자열 프로토콜)
매개변수
규약 | 사용할 RPC 프로토콜입니다. 빈 문자열은 기본 프로토콜을 사용한다는 의미입니다. 옵션에는 'grpc'가 포함됩니다. |
---|
공개 정적 TryRpc.Options timeoutInMs (긴 timeoutInMs)
매개변수
시간 초과(Ms) | 'int'. '0'(기본값)이면 커널은 RPC 요청을 실행하고 RPC 기한이 지났거나 세션 시간이 초과된 경우에만 시간 초과됩니다. 이 값이 '0'보다 크면 RPC가 'timeout_in_ms'보다 오래 걸리면 작업에서 예외가 발생합니다. |
---|