ลองRpc

คลาสสุดท้ายสาธารณะ TryRpc

ดำเนินการคำขอ RPC เป็นชุด

การดำเนินการนี้ดำเนินการคำขอ RPC เดียวหรือชุดคำขอแบบอะซิงโครนัส คำขอ RPC ถูกกำหนดโดยพารามิเตอร์หลักสามตัว:

- `address` (โฮสต์+พอร์ตหรือที่อยู่ BNS ของคำขอ) - `method` (ชื่อวิธีการสำหรับคำขอ) - `request` (สตริงโปรโตแบบอนุกรมหรือเวกเตอร์ของสตริงของอาร์กิวเมนต์คำขอ RPC)

ตัวอย่างเช่น หากคุณมีบริการ RPC ที่ทำงานบนพอร์ต localhost:2345 และอินเทอร์เฟซได้รับการกำหนดค่าด้วยการประกาศโปรโตต่อไปนี้:

service MyService {
   rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
   
 };
 }
จากนั้นเรียก op นี้พร้อมกับอาร์กิวเมนต์:
address = "localhost:2345"
 method = "MyService/MyMethod"
 
เทนเซอร์ `คำขอ` คือเทนเซอร์สตริงที่แสดงถึง สตริง `MyRequestProto` ที่ต่อเนื่องกัน และเทนเซอร์สตริงเอาท์พุต `response` จะมีรูปร่างเหมือนกันและมี (เมื่อเสร็จสิ้นสำเร็จ) สตริง `MyResponseProto` ที่เป็นอนุกรมที่สอดคล้องกัน

ตัวอย่างเช่น หากต้องการส่ง `MyRequestProto` ที่ว่างเปล่า ให้เรียก op นี้ด้วย `request = ""` หากต้องการส่งคำขอว่าง แบบขนาน 5 รายการ ให้เรียก op นี้ด้วย `request = ["", "", "", "", ""]`

โดยทั่วไป เราสามารถสร้างชุดของโปรโตอนุกรม `MyRequestProto` จากเทนเซอร์แบบแบตช์ปกติโดยใช้ op `encode_proto` และแปลงการตอบสนอง `MyResponseProto` โปรโตซีเรียลไลซ์เป็นเทนเซอร์แบบแบตช์โดยใช้ op `decode_proto`

หมายเหตุ การทำงานกับสตริงโปรโตแบบอนุกรมจะเร็วกว่าการสร้างอินสแตนซ์ออบเจ็กต์โปรโตจริงในหน่วยความจำ ดังนั้นจึงคาดว่าจะไม่ลดประสิทธิภาพลงเมื่อเปรียบเทียบกับการเขียนเคอร์เนลแบบกำหนดเองสำหรับเวิร์กโฟลว์นี้

ไม่เหมือนกับ op `Rpc` มาตรฐาน หากการเชื่อมต่อล้มเหลวหรือผู้ปฏิบัติงานระยะไกลส่งคืนสถานะข้อผิดพลาด op นี้ ไม่ ทำให้เกิดข้อยกเว้นอีกครั้ง แต่รายการ `status_code` และ `status_message` สำหรับการเรียก RPC ที่เกี่ยวข้องจะถูกตั้งค่าโดยมีข้อผิดพลาดที่ส่งคืนจากการเรียก RPC เทนเซอร์ "การตอบสนอง" จะมีค่าการตอบสนองที่ถูกต้องสำหรับรายการมินิแบทช์ที่ RPC ไม่ล้มเหลว รายการที่เหลือจะมีสตริงว่าง

คลาสที่ซ้อนกัน

ระดับ ลอง Rpc.Options แอ็ตทริบิวต์ทางเลือกสำหรับ TryRpc

วิธีการสาธารณะ

TryRpc แบบคงที่
สร้าง (ขอบเขต ขอบเขต ที่อยู่ตัว ดำเนินการ <String> ตัว ถูกดำเนินการ <String> วิธีการ คำขอ ตัวถูกดำเนินการ <String> ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ TryRpc ใหม่
TryRpc.Options แบบคงที่
FailFast (บูลีน FailFast)
TryRpc.Options แบบคงที่
โปรโตคอล (โปรโตคอลสตริง)
เอาท์พุต <สตริง>
การตอบสนอง ()
รูปร่างเดียวกับ 'คำขอ'
เอาต์พุต <จำนวนเต็ม>
รหัสสถานะ ()
รูปร่างเดียวกับ 'คำขอ'
เอาท์พุต <สตริง>
ข้อความสถานะ ()
รูปร่างเดียวกับ 'คำขอ'
TryRpc.Options แบบคงที่
timeoutInMs (หมดเวลานานInMs)

วิธีการสืบทอด

วิธีการสาธารณะ

สร้าง TryRpc สาธารณะแบบคงที่ (ขอบเขต ขอบเขต ที่อยู่ <String> ตัว ถูกดำเนิน การ วิธีการ <String> ตัวถูกดำเนินการ คำขอ <String> ตัวดำเนิน การ ตัวเลือก... ตัวเลือก)

วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ TryRpc ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
ที่อยู่ `0-D` หรือ `1-D` ที่อยู่ (เช่น host_name:port) ของเซิร์ฟเวอร์ RPC หากเทนเซอร์นี้มีมากกว่า 1 องค์ประกอบ ระบบจะส่งคำขอ rpc แบบขนานหลายรายการ อาร์กิวเมนต์นี้ออกอากาศด้วย 'วิธีการ' และ 'คำขอ'
วิธี `0-D` หรือ `1-D` ที่อยู่วิธีการบนเซิร์ฟเวอร์ RPC หากเทนเซอร์นี้มีมากกว่า 1 องค์ประกอบ ระบบจะส่งคำขอ rpc แบบขนานหลายรายการ อาร์กิวเมนต์นี้ออกอากาศด้วย 'ที่อยู่' และ 'คำขอ'
ขอ `0-D` หรือ `1-D` สตริงโปรโตแบบอนุกรม: อาร์กิวเมนต์คำขอ rpc หากเทนเซอร์นี้มีมากกว่า 1 องค์ประกอบ ระบบจะส่งคำขอ rpc แบบขนานหลายรายการ อาร์กิวเมนต์นี้ออกอากาศด้วย 'ที่อยู่' และ 'วิธีการ'
ตัวเลือก มีค่าแอตทริบิวต์ทางเลือก
การส่งคืน
  • อินสแตนซ์ใหม่ของ TryRpc

TryRpc.Options แบบคงที่สาธารณะ ล้มเหลวอย่างรวดเร็ว (บูลีนล้มเหลวอย่างรวดเร็ว)

พารามิเตอร์
ล้มเหลวเร็ว 'บูลีน'. หากเป็น "จริง" (ค่าเริ่มต้น) ความล้มเหลวในการเชื่อมต่อ (เช่น เซิร์ฟเวอร์ไม่ตอบสนองในทันที) จะทำให้ RPC ล้มเหลว

โปรโตคอล TryRpc.Options สาธารณะแบบคงที่ (โปรโตคอลสตริง)

พารามิเตอร์
มาตรการ โปรโตคอล RPC ที่จะใช้ สตริงว่างหมายถึงใช้โปรโตคอลเริ่มต้น ตัวเลือกรวมถึง 'grpc'

การตอบสนอง เอาท์พุท สาธารณะ <String> ()

รูปร่างเดียวกับ 'คำขอ' สตริงโปรโตแบบอนุกรม: การตอบสนอง rpc

สาธารณะ เอาท์พุท <จำนวนเต็ม> statusCode ()

รูปร่างเดียวกับ 'คำขอ' ค่าสอดคล้องกับรหัสแจงนับสถานะเทนเซอร์โฟลว์

สาธารณะ เอาท์พุท <สตริง> สถานะข้อความ ()

รูปร่างเดียวกับ 'คำขอ' ค่าที่สอดคล้องกับข้อความสถานะที่ส่งคืนจากการเรียก RPC

สาธารณะ TryRpc.Options หมด เวลา InMs (หมดเวลานาน InMs)

พารามิเตอร์
หมดเวลาในMs `อินท์`. หากเป็น `0` (ค่าเริ่มต้น) เคอร์เนลจะเรียกใช้คำขอ RPC และหมดเวลาเฉพาะเมื่อพ้นกำหนดเวลา RPC หรือหมดเวลาเซสชันเท่านั้น หากค่านี้มากกว่า `0` op จะเพิ่มข้อยกเว้นหาก RPC ใช้เวลานานกว่า `timeout_in_ms`