अगर आपको कोई समस्या आती है, तो मदद पाने के लिए यहां दिए गए सेक्शन देखें.
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 सेवा में कुछ समय के लिए कोई समस्या आई है.
- समस्या हल करना: इस अनुरोध को एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से आज़माया जा सकता है.