TryRpc

الطبقة النهائية العامة TryRpc

تنفيذ دفعات من طلبات RPC.

تقوم هذه العملية بشكل غير متزامن بتنفيذ طلب RPC واحد أو مجموعة من الطلبات. يتم تحديد طلبات RPC بواسطة ثلاث معلمات رئيسية:

- "العنوان" (المضيف + المنفذ أو عنوان BNS للطلب) - "الطريقة" (اسم الطريقة للطلب) - "الطلب" (سلسلة أولية متسلسلة، أو متجه السلاسل، لوسيطة طلب RPC).

على سبيل المثال، إذا كان لديك خدمة RPC تعمل على المنفذ localhost:2345، وتم تكوين واجهتها باستخدام الإعلان الأولي التالي:

service MyService {
   rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
   
 };
 }
، فقم باستدعاء هذه العملية مع الوسائط:
address = "localhost:2345"
 method = "MyService/MyMethod"
 
، موتر "الطلب" هو موتر سلسلة يمثل سلاسل `MyRequestProto` المتسلسلة؛ وسيكون لموتر سلسلة الإخراج `الاستجابة` نفس الشكل ويحتوي (عند الإكمال الناجح) على سلاسل `MyResponseProto` المتسلسلة المقابلة.

على سبيل المثال، لإرسال طلب واحد فارغ، `MyRequestProto`، قم باستدعاء هذه العملية باستخدام `request = ""`. لإرسال 5 طلبات فارغة متوازية ، اتصل بهذه العملية باستخدام `request = [""، ""، ""، ""، ""]`.

بشكل أكثر عمومية، يمكن للمرء إنشاء مجموعة من النماذج الأولية المتسلسلة `MyRequestProto` من موترات مجمعة عادية باستخدام عملية `encode_proto`، وتحويل الاستجابة للنماذج الأولية المتسلسلة `MyResponseProto` إلى موترات مجمعة باستخدام عملية `decode_proto`.

ملاحظة: يعد العمل باستخدام سلاسل أولية متسلسلة أسرع من إنشاء كائنات أولية فعلية في الذاكرة، لذلك لا يُتوقع حدوث تدهور في الأداء مقارنة بكتابة نواة مخصصة لسير العمل هذا.

على عكس عملية `Rpc` القياسية، إذا فشل الاتصال أو قام العامل البعيد بإرجاع حالة خطأ، فإن هذه العملية لا تؤدي إلى إعادة الاستثناء. بدلاً من ذلك، يتم تعيين إدخال "رمز_الحالة" و"رسالة_الحالة" لاستدعاء RPC المقابل مع الخطأ الذي تم إرجاعه من استدعاء RPC. سيحتوي موتر "الاستجابة" على قيم استجابة صالحة لإدخالات الدفعة الصغيرة التي لم تفشل محاولات RPC الخاصة بها؛ سيكون لبقية الإدخالات سلاسل فارغة.

فئات متداخلة

فصل TryRpc.Options السمات الاختيارية لـ TryRpc

الأساليب العامة

ثابت TryRpc
إنشاء ( نطاق النطاق، عنوان المعامل <String>، أسلوب المعامل <String>، طلب المعامل <String>، الخيارات... الخيارات)
طريقة المصنع لإنشاء فئة تغلف عملية TryRpc جديدة.
ثابت TryRpc.Options
FailFast (فشل منطقي منطقي)
ثابت TryRpc.Options
البروتوكول (بروتوكول السلسلة)
الإخراج <سلسلة>
إجابة ()
نفس شكل "الطلب".
الإخراج <عدد صحيح>
رمز الحالة ()
نفس شكل "الطلب".
الإخراج <سلسلة>
رسالة الحالة ()
نفس شكل "الطلب".
ثابت TryRpc.Options
timeoutInMs (مهلة طويلة InMs)

الطرق الموروثة

الأساليب العامة

إنشاء TryRpc ثابت عام ( نطاق النطاق، عنوان المعامل <String>، أسلوب المعامل <String>، طلب المعامل <String>، الخيارات... الخيارات)

طريقة المصنع لإنشاء فئة تغلف عملية TryRpc جديدة.

حدود
نِطَاق النطاق الحالي
عنوان `0-D` أو `1-D`. العنوان (أي اسم المضيف: المنفذ) لخادم RPC. إذا كان هذا الموتر يحتوي على أكثر من عنصر واحد، فسيتم إرسال طلبات RPC متعددة متوازية. يتم بث هذه الوسيطة باستخدام "الطريقة" و"الطلب".
طريقة `0-D` أو `1-D`. عنوان الطريقة على خادم RPC. إذا كان هذا الموتر يحتوي على أكثر من عنصر واحد، فسيتم إرسال طلبات RPC متعددة متوازية. يتم بث هذه الوسيطة مع "العنوان" و"الطلب".
طلب `0-D` أو `1-D`. سلاسل أولية متسلسلة: وسيطة طلب RPC. إذا كان هذا الموتر يحتوي على أكثر من عنصر واحد، فسيتم إرسال طلبات RPC متعددة متوازية. يتم بث هذه الوسيطة باستخدام "العنوان" و"الطريقة".
خيارات يحمل قيم السمات الاختيارية
عائدات
  • مثيل جديد لـ TryRpc

TryRpc.Options الثابت العام FailFast (فشل منطقي منطقي)

حدود
اخفاق سريع "منطقي". إذا كان "صحيح" (افتراضي)، فإن الفشل في الاتصال (أي عدم استجابة الخادم على الفور) يؤدي إلى فشل RPC.

بروتوكول TryRpc.Options الثابت العام (بروتوكول السلسلة)

حدود
بروتوكول بروتوكول RPC للاستخدام. تعني السلسلة الفارغة استخدام البروتوكول الافتراضي. تتضمن الخيارات "grpc".

استجابة الإخراج العام <سلسلة> ()

نفس شكل "الطلب". سلاسل بروتو متسلسلة: استجابات RPC.

رمز الحالة الناتج العام <عدد صحيح> ()

نفس شكل "الطلب". تتوافق القيم مع رموز تعداد حالة Tensorflow.

الإخراج العام <سلسلة> StatusMessage ()

نفس شكل "الطلب". تتوافق القيم مع رسائل الحالة التي يتم إرجاعها من مكالمات RPC.

TryRpc.Options timeoutInMs الثابت العام (Long timeoutInMs)

حدود
timeoutInMs "كثافة العمليات". إذا كان `0` (افتراضي)، فستقوم النواة بتشغيل طلب RPC ولن تنتهي المهلة إلا إذا انقضى الموعد النهائي لـ RPC أو انتهت مهلة الجلسة. إذا كانت هذه القيمة أكبر من `0`، فستقوم العملية بإصدار استثناء إذا استغرق RPC وقتًا أطول من `timeout_in_ms`.