अगर आपको कोई समस्या आती है, तो मदद पाने के लिए यहां दिए गए सेक्शन देखें.
Fleet Engine में खोए हुए डिवाइस की स्थिति
Fleet Engine के साथ काम करते समय, अपने इंटिग्रेशन को इस तरह से डिज़ाइन करें कि वह गड़बड़ियों का अनुमान लगा सके. उदाहरण के लिए, अगर आपने Fleet Engine से किसी वाहन की जानकारी अपडेट करने का अनुरोध किया है, तो हो सकता है कि वह गड़बड़ी का मैसेज दिखाए. इससे पता चलता है कि वाहन मौजूद नहीं है. इसके बाद, आपके इंटिग्रेशन को वाहन को नई स्थिति में फिर से बनाना चाहिए.
अगर Fleet Engine में कोई गंभीर समस्या आती है, तो आपको ज़्यादातर या सभी वाहनों और टास्क को फिर से बनाना पड़ सकता है. अगर क्रिएशन की दर बहुत ज़्यादा हो जाती है, तो हो सकता है कि कोटा से जुड़ी समस्याओं की वजह से कुछ अनुरोध फिर से पूरे न हो पाएं. ऐसा इसलिए, क्योंकि सेवा में रुकावट (डीओएस) के हमलों से बचने के लिए, कोटा की जांच की जाती है. इस मामले में, फिर से कोशिश करने के लिए बैकऑफ़ रणनीति का इस्तेमाल करके, रीक्रिएशन रेट को कम करें.
फिर से कोशिश करना
पक्का करें कि आपका सिस्टम, Fleet Engine को किए गए अनुरोधों के लिए फिर से कोशिश करने की सुविधा लागू करता हो, क्योंकि कभी-कभी ये अनुरोध पूरे नहीं हो पाते. Fleet Engine की क्लाइंट लाइब्रेरी, डिफ़ॉल्ट रूप से फिर से कोशिश करने के अनुरोध भेजती हैं.
ड्राइवर ऐप्लिकेशन में स्टेटस मौजूद नहीं है
अगर ड्राइवर ऐप्लिकेशन क्रैश हो जाता है, तो ऐप्लिकेशन को Driver SDK में मौजूदा स्थिति को फिर से बनाना होगा. ऐप्लिकेशन को टास्क फिर से बनाने की कोशिश करनी चाहिए, ताकि यह पक्का किया जा सके कि वे मौजूद हैं और उनकी मौजूदा स्थितियां वापस आ गई हैं. ऐप्लिकेशन को Driver SDK के लिए, स्टॉप की सूची को फिर से बनाना चाहिए और उसे साफ़ तौर पर सेट करना चाहिए.
ध्यान दें: इन बदलावों को अपने-आप लागू किया जाना चाहिए. इसके लिए, Fleet Engine से मिली जानकारी का इस्तेमाल नहीं किया जाना चाहिए. हालांकि, अगर डेटाबेस में कोई इकाई पहले से मौजूद है, तो इस बारे में बताने वाली गड़बड़ियों की जानकारी का इस्तेमाल किया जा सकता है. अगर कोई इकाई पहले से मौजूद है, तो उस गड़बड़ी को ठीक किया जा सकता है. साथ ही, इकाई के आईडी का इस्तेमाल करके उसे अपडेट किया जा सकता है.
समयसीमा खत्म होने के बाद दिखने वाली गड़बड़ियां
Fleet Engine को कॉल करते समय, अगर आपको DEADLINE_EXCEEDED गड़बड़ी मिलती है, तो इसका मतलब है कि अनुरोध को कॉन्फ़िगर किए गए टाइम आउट से ज़्यादा समय लगा. Fleet Engine की क्लाइंट लाइब्रेरी में डिफ़ॉल्ट टाइमआउट होते हैं. हालांकि, आपको इनमें बदलाव करने की ज़रूरत पड़ सकती है.
gRPC के समयसीमा से जुड़े सामान्य दिशा-निर्देशों के बारे में जानने के लिए, gRPC और समयसीमाएं लेख पढ़ें.
Fleet Engine Java क्लाइंट लाइब्रेरी का इस्तेमाल करते समय, समयसीमा को कॉन्फ़िगर करने के लिए, आरपीसी फिर से कोशिश करने की सेटिंग में बदलाव किया जा सकता है. यहां दिए गए उदाहरण में, VehicleService को सेट अप करते समय, कस्टम टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है:
VehicleServiceSettings.Builder settingsBuilder = VehicleServiceSettings.newBuilder();
// Set the timeout to 10 seconds.
settingsBuilder
.getVehicleSettings()
.setRetrySettings(
settingsBuilder.getVehicleSettings().getRetrySettings().toBuilder()
.setTotalTimeout(java.time.Duration.ofSeconds(10))
.build());
VehicleServiceClient client = VehicleServiceClient.create(settingsBuilder.build());
एपीआई से जुड़ी सामान्य गड़बड़ियां
इस सेक्शन में, एपीआई से जुड़ी आम गड़बड़ियों के बारे में बताया गया है. साथ ही, इन गड़बड़ियों की वजहों और इन्हें ठीक करने के तरीके के बारे में भी बताया गया है.
NOT_FOUND (एचटीटीपी 404)
अनुरोध की गई इकाई (जैसे कि वाहन, यात्रा या टास्क) नहीं मिली.
- वजह: आम तौर पर, ऐसा तब होता है, जब किसी ऐसी इकाई को पाने, अपडेट करने या मिटाने की कोशिश की जाती है जिसका आईडी डेटाबेस में मौजूद नहीं है.
- समस्या हल करना: पुष्टि करें कि इकाई का आईडी सही है और इकाई को ऐक्सेस करने से पहले, उसे सही तरीके से बनाया गया हो.
ALREADY_EXISTS (एचटीटीपी 409)
आपको जो इकाई बनानी है वह पहले से मौजूद है.
- वजह: यह गड़बड़ी, ऐसे आईडी के साथ create तरीके (जैसे कि
CreateVehicleयाCreateTrip) को कॉल करने की वजह से होती है जिसका पहले से इस्तेमाल किया जा रहा है. - समस्या हल करना: इसके बजाय, मौजूदा इकाई को अपडेट करें या अनुरोध बनाने के लिए, नए यूनीक आईडी का इस्तेमाल करें.
PERMISSION_DENIED (एचटीटीपी 403)
अनुरोध पूरा करने के लिए, आपके पास ज़रूरी अनुमतियां नहीं हैं.
- वजह: आम तौर पर, यह समस्या तब होती है, जब आपके JSON Web Token (JWT) में सही दावे मौजूद न हों या JWT पर हस्ताक्षर करने वाले सेवा खाते के पास ज़रूरी IAM भूमिकाएं न हों. उदाहरण के लिए, "JWT में अनुरोध की गई यात्रा के लिए, मैचिंग स्कोप शामिल नहीं है."
- समस्या हल करना: अपने सेवा खाते की अनुमतियों की जांच करें. साथ ही, पक्का करें कि आपके JWT दावों में, उस इकाई के लिए सही स्कोप शामिल हों जिसे ऐक्सेस करने की कोशिश की जा रही है.
INVALID_ARGUMENT (एचटीटीपी 400)
अनुरोध में पास किए गए एक या उससे ज़्यादा आर्ग्युमेंट अमान्य हैं.
- वजह: ऐसा कई वजहों से हो सकता है. जैसे, तय सीमा से बाहर की वैल्यू देना (उदाहरण के लिए, ज़्यादा से ज़्यादा क्षमता), ज़रूरी फ़ील्ड (उदाहरण के लिए,
VehicleType) की वैल्यू मौजूद न होना या पिकअप पॉइंट के लिए अमान्य कोऑर्डिनेट देना. - समस्या हल करना: उस फ़ील्ड के लिए गड़बड़ी का मैसेज देखें जो अमान्य है. साथ ही, पक्का करें कि आपका अनुरोध, एपीआई की खास बातों के मुताबिक हो.
FAILED_PRECONDITION (एचटीटीपी 400)
इस कार्रवाई को अस्वीकार कर दिया गया है, क्योंकि सिस्टम उस स्थिति में नहीं है जिसमें कार्रवाई को पूरा किया जा सकता है.
- वजह: इसकी सामान्य वजहों में,
COMPLETEयाCANCELEDट्रिप को किसी दूसरी स्थिति में बदलने की कोशिश करना या किसी वाहन कोCLOSEDटास्क असाइन करने की कोशिश करना शामिल है. - समस्या हल करना: पक्का करें कि इकाई की मौजूदा स्थिति में, वह कार्रवाई की जा सकती हो जो आपको करनी है. राज्य के हिसाब से, नीति के उल्लंघन से जुड़ा गड़बड़ी का मैसेज देखें.
UNAVAILABLE (एचटीटीपी 503)
यह सेवा उपलब्ध नहीं है.
- वजह: इससे पता चलता है कि Fleet Engine सेवा में कुछ समय के लिए कोई समस्या आई है.
- समस्या हल करना: इस अनुरोध को एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से भेजा जा सकता है.