Sık karşılaşılan sorunları giderme

Herhangi bir sorun yaşarsanız yardım için aşağıdaki bölümleri inceleyin.

Fleet Engine'de kayıp durumu

Fleet Engine ile çalışırken uygulamanızı hataları önceden tahmin edecek şekilde tasarlayın. Örneğin, Fleet Engine'e bir aracı güncelleme isteği gönderirseniz araç bulunamadığını belirten bir hata yanıtı alabilirsiniz. Ardından, uygulamanız aracı yeni durumda yeniden oluşturmalıdır.

Fleet Engine'da çok nadir görülen ciddi bir hata oluşması durumunda araçların ve görevlerin çoğunu veya tamamını yeniden oluşturmanız gerekebilir. Oluşturma hızı çok yükselirse hizmet reddi (DOS) saldırılarını önlemek için kota kontrolleri yapıldığından bazı istekler kota sorunları nedeniyle tekrar başarısız olabilir. Bu durumda, yeniden denemeler için bir bekleme stratejisi kullanarak yeniden oluşturma hızını azaltın.

Yeniden deneme sayısı

Fleet Engine'e gönderilen istekler zaman zaman başarısız olabileceğinden sisteminizin bu istekleri yeniden denediğinden emin olun. Fleet Engine istemci kitaplıkları, varsayılan olarak yeniden deneme yapar.

Sürücü uygulamasında kayıp durumu

Sürücü uygulaması kilitlenirse uygulama, Sürücü SDK'sında mevcut durumu yeniden oluşturmalıdır. Uygulama, görevlerin mevcut olduğundan emin olmak ve mevcut durumlarını geri yüklemek için görevleri yeniden oluşturmaya çalışmalıdır. Uygulama ayrıca durak listesini yeniden oluşturmalı ve Driver SDK için açıkça ayarlamalıdır.

Not: Bu geri yüklemeler, veritabanında bir öğenin mevcut olup olmadığını ve ne zaman mevcut olduğunu gösteren hatalar dışında, Fleet Engine'dan gelen bilgilere bağlı kalmadan otonom olarak yapılmalıdır. Bir varlık zaten mevcutsa bu hata giderilebilir ve varlık, kimliği kullanılarak güncellenebilir.

"Süre sonu aşıldı" hataları

Fleet Engine'ı çağırırken DEADLINE_EXCEEDED hatası alırsanız istek, yapılandırılan zaman aşımından daha uzun sürmüştür. Fleet Engine istemci kitaplıklarının varsayılan zaman aşımı süreleri vardır ancak bunları ayarlamanız gerekebilir.

gRPC son tarihleri hakkında genel bilgi için gRPC ve Son Tarihler başlıklı makaleyi inceleyin.

Fleet Engine Java istemci kitaplığını kullanırken son tarihi yapılandırmak için RPC yeniden deneme ayarlarını düzenleyebilirsiniz. Aşağıdaki örnekte, VehicleService ayarlanırken özel bir zaman aşımının nasıl yapılandırılacağı gösterilmektedir:

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());

Sık karşılaşılan API hataları

Bu bölümde, karşılaşabileceğiniz yaygın API hataları, nedenleri ve nasıl çözülecekleri listelenmiştir.

NOT_FOUND (HTTP 404)

İstenen öğe (ör. araç, gezi veya görev) bulunamadı.

  • Nedeni: Genellikle veritabanında bulunmayan bir kimliği kullanarak bir öğeyi almaya, güncellemeye veya silmeye çalışmaktan kaynaklanır.
  • Çözüm: Varlık kimliğinin doğru olduğunu ve varlığın başarıyla oluşturulduğunu doğruladıktan sonra erişmeyi deneyin.

ALREADY_EXISTS (HTTP 409)

Oluşturmaya çalıştığınız öğe zaten mevcut.

  • Nedeni: Zaten kullanımda olan bir kimlikle oluşturma yönteminin (CreateVehicle veya CreateTrip gibi) çağrılmasından kaynaklanır.
  • Çözüm: Mevcut öğeyi güncelleyin veya oluşturma isteği için yeni bir benzersiz kimlik kullanın.

PERMISSION_DENIED (HTTP 403)

İsteği tamamlamak için gerekli izinlere sahip değilsiniz.

  • Nedeni: Bu durum genellikle JSON Web Token'ınızda (JWT) doğru hak talepleri eksikse veya JWT'yi imzalayan hizmet hesabında gerekli IAM rolleri eksikse ortaya çıkar. Örneğin, "JWT, istenen gezi için eşleşen bir kapsam içermiyor."
  • Çözüm: Hizmet Hesabı izinlerinizi kontrol edin ve JWT taleplerinizin, erişmeye çalıştığınız varlık için doğru kapsamları içerdiğinden emin olun.

INVALID_ARGUMENT (HTTP 400)

İstekte iletilen bağımsız değişkenlerden biri veya daha fazlası geçersiz.

  • Neden: Bu durum, aralık dışı bir değer (ör. maksimum kapasite) sağlama, zorunlu bir alanı (ör. VehicleType) eksik bırakma veya teslim alma noktası için geçersiz koordinatlar sağlama gibi çeşitli nedenlerden kaynaklanabilir.
  • Çözüm: Geçersiz olan alanla ilgili hata mesajını inceleyin ve isteğinizin API spesifikasyonuna uygun olduğundan emin olun.

FAILED_PRECONDITION (HTTP 400)

Sistem, işlemin yürütülmesi için gereken durumda olmadığından işlem reddedildi.

  • Neden: Yaygın nedenler arasında bir COMPLETE veya CANCELED gezisini farklı bir eyalete değiştirmeye çalışmak ya da bir araca CLOSED görevi atamaya çalışmak yer alır.
  • Çözüm: Varlığın mevcut durumunun, denediğiniz işleme izin verdiğinden emin olun. Eyalete özgü ihlaller için hata mesajını kontrol edin.

UNAVAILABLE (HTTP 503)

Hizmet kullanılamıyor.

  • Neden: Bu, Fleet Engine hizmetiyle ilgili geçici bir sorunu gösterir.
  • Çözüm: İstek, eksponansiyel geri yükleme ile güvenli bir şekilde yeniden denenebilir.