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

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ı önleyecek şekilde tasarlayın. Örneğin, Fleet Engine'e bir aracı güncelleme isteği gönderirseniz araç mevcut değilse hata yanıtı alabilirsiniz. Uygulamanız daha sonra aracı yeni durumda yeniden oluşturmalıdır.

Fleet Engine'in felaketle sonuçlanan bir arızası gibi son derece düşük bir ihtimalde, 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 deneme için geri çekilme stratejisi kullanarak yeniden oluşturma hızını yavaşlatın.

Yeniden deneme sayısı

Sisteminize Fleet Engine'e yapılan istekler için yeniden deneme uyguladığınızdan emin olun. Bu istekler zaman zaman başarısız olabilir. Fleet Engine istemci kitaplıkları, varsayılan olarak yeniden deneme isteğinde bulunur.

Sürücü uygulamasında durum kayboldu

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

Not: Bu geri yüklemeler, bir öğenin veritabanında mevcut olup olmadığını ve ne zaman mevcut olduğunu belirten hatalar dışında Fleet Engine'den alınan bilgilere dayanmadan bağımsız olarak yapılmalıdır. Bir öğe zaten varsa bu hata giderilebilir ve öğe, kimliği kullanılarak güncellenebilir.

Süre sonu aşıldı hataları

Fleet Engine'i ç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ında varsayılan zaman aşımları 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 listelenmektedir.

NOT_FOUND (HTTP 404)

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

  • Neden: Genellikle veritabanında bulunmayan bir kimlik kullanarak bir öğeyi almaya, güncellemeye veya silmeye çalışmaktan kaynaklanır.
  • Düzeltme: Erişmeye çalışmadan önce öğe kimliğinin doğru olduğunu ve öğenin başarıyla oluşturulduğunu doğrulayın.

ALREADY_EXISTS (HTTP 409)

Oluşturmaya çalıştığınız varlık zaten mevcut.

  • Neden: Halihazırda kullanımda olan bir kimlikle oluşturma yönteminin (ör. CreateVehicle veya CreateTrip) çağrılmasından kaynaklanır.
  • Düzeltme: Bunun yerine mevcut varlığı 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.

  • Neden: Bu durum genellikle JSON Web Token'ınızda (JWT) doğru talepler 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."
  • Düzeltme: Hizmet hesabı izinlerinizi kontrol edin ve JWT taleplerinizin, erişmeye çalıştığınız öğe için doğru kapsamları içerdiğinden emin olun.

INVALID_ARGUMENT (HTTP 400)

İstekle iletilen bağımsız değişkenlerden en az biri geçersiz.

  • Neden: Bu durum, aralık dışı bir değer (ör. maksimum kapasite) sağlama, gerekli bir alanı (ör. VehicleType) atlama veya teslim alma noktası için geçersiz koordinatlar sağlama gibi çeşitli nedenlerden dolayı yaşanabilir.
  • Düzeltme: Geçersiz olan belirli 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 gerekli durumda olmadığından işlem reddedildi.

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

UNAVAILABLE (HTTP 503)

Hizmet kullanılamıyor.

  • Neden: Bu durum, Fleet Engine hizmetiyle ilgili geçici bir soruna işaret eder.
  • Düzeltme: İstek, üstel geri yüklemeyle güvenli bir şekilde yeniden denenebilir.