Bu dokümanda, Fleet Engine'daki planlanmış görevler hizmeti açıklanmaktadır. Bu doküman, Fleet Engine nedir? başlıklı makaleyi okuduğunuzu ve ihtiyacınız olan Fleet Engine hizmet özelliğinin farkında olduğunuzu varsaymaktadır.
Bu dokümanları okurken aşağıdakileri göz önünde bulundurun:
- Sürücünün görevi tamamlayabilmesi için görev ile aracın durması beklenen konum arasındaki gerçek ilişkiyi modellemek amacıyla görevler oluşturup bunları bir araç durağıyla ilişkilendirirsiniz. Fleet Engine'da araçların işleyiş şeklini daha iyi anlamak için Araçlara giriş başlıklı makaleyi okuyun.
- Planlanmış görevler için Fleet Engine aşağıdaki kaynakları kullanır:
Task
veDeliveryVehicle
. Fleet Engine hem gRPC hizmeti hem de REST arayüzleri sağlar:
Planlanmış görev nedir?
Fleet Engine'daki planlanmış görevler, bir nakliye operasyonunun daha geniş bağlamında bir aracı kullanan sürücü tarafından tamamlanacak tek bir işlemi temsil eder. Sürücü için belirli bir hedefi tanımlar. Örneğin:
- Bir mal teslim etmek için
- Gönderi deposuna iade edilecek paketi almak için
- Bir müşteriye yerinde hizmet sunmak için bir yerde durabilir.
- Araca yakıt almak için planlanmış bir durak oluşturmak
Görev öğeleri
Aşağıdaki resimde, bir araç için standart planlanmış bir yolculukta bu görev öğeleri gösterilmektedir.
Temel görev alanları
Alan | Açıklama |
---|---|
Tür | Görevle ilişkili işlem türünü tanımlar. |
Görev Kimliği | Sistemin içindeki görevi benzersiz şekilde tanımlayan bir dize. |
Planlanan konum | Görevin gerçekleştirilmesi amaçlanan konumu belirtir. Bu konum, araç durağı için planlanan konumla her zaman aynı değildir. |
Eyalet | Görevin açık mı yoksa kapalı mı olduğunu belirtir. |
Görev Sonucu | Görevin başarılı olup olmadığını belirtir. |
Görevler için veri modeli
Aşağıdaki şemalar, ilişkili DeliveryVehicle
kaynağının şemasıyla birlikte Task
kaynağının veri modelini göstermektedir. İki kaynak arasındaki ilişkileri keşfetmek için her iki şemayı da inceleyebilirsiniz. Aşağıdakileri göz önünde bulundurun:
- Planlanan konum: Hem araç durakları hem de görevlerin birbirinden farklı planlanan konumları vardır.
- Görevler için planlanmış konum, sürücü işleminin nerede gerçekleşmesi gerektiğini belirtir. Örneğin, büyük bir konut kompleksine 15 paket teslimatı yapılacaksa aynı kompleksteki farklı posta odalarına teslimat yapılması gerekir.
- Araç durakları için planlanan konum, sürücü görevleri tamamlarken aracın duracağı yeri gösterir. Örneğin, bir araç bir apartman kompleksinin girişinde durur ve sürücü, paketleri kompleks içindeki ayrı posta odalarına elle teslim eder.
- Durum: Hem görevler hem de araç durakları birbirinden farklı bir durum alanına sahiptir.
- Araç durağının durumu, filo takibi amacıyla kullanılan aracın durakla ilgili ilerleme durumunu yansıtır.
- Görevin durumu, görevin etkin olup olmadığını gösterir. Bu durum, görevlerde yapılacak diğer işlemleri (ör. sonucunu ayarlama veya bir araca atama) etkiler.
Görev sonucu: Görev sonucu, görev durumundan bağımsız olarak bir görevin başarısını veya başarısızlığını belirtmek için kullanıldığından veri modelinde önemli bir alandır.
Kimlikler:
- Bir araca görev atadığınızda Fleet Engine,
deliveryVehicleId
alanını doldurur. Bu salt okunur alan, görevin atandığı aracı belirtir. - Görev kimlikleri, sisteminizdeki tüm görevler için benzersiz tanımlayıcılardır.
- İzleme kimlikleri, kargo takibi amacıyla bir görevi tanımlar.
- Bir araca görev atadığınızda Fleet Engine,
Görevler veri modeli
Araç veri modeli
Görev kimlikleri
Fleet Engine'daki araç kimliklerine benzer şekilde, görevlerin her biri sistemdeki diğer görevlerden ayırt edilebilmesi için bir kimlik içermelidir. İş akışınızdaki tüm görevleri kimliklerine göre referans olarak kullanır ve yönetirsiniz. Bu kimlikleri, CreateTaskRequest
hizmetini kullanarak ve bu bölümde açıklanan şartlara uygun bir kimlik dizesi sağlayarak oluşturursunuz.
Bu dize, görev kaynağının adının bir kısmını (Task
nesnesinde yalnızca çıkış alanı) içerir. Bu, Fleet Engine'ın araç adı kaynaklarını oluşturma şekline benzer. Fleet Engine'a Giriş başlıklı makalenin Kaynak adlandırma bölümüne bakın.
Mülk | Açıklama |
---|---|
Benzersizlik | Karışıklığı önlemek ve doğru tanımlama sağlamak için her görev kimliği, Fleet Engine uygulamanızda benzersiz olmalıdır. |
Biçim |
|
İyi görev kimliği örnekleri |
|
---|---|
İzin verilmeyen görev kimlikleri |
|
Görev türleri
Fleet Engine, bir taşımacılık operasyonundaki farklı işlemleri temsil etmek için çeşitli görev türlerini destekler. Bu hesaplar, görünürlükleri ve faturalandırma ayrıntılarıyla birlikte burada açıklanmaktadır.
Görev Türü | Açıklama | Gönderi Takibi Görünürlüğü | Faturalandırıldı |
---|---|---|---|
Yayınlama Görevi | Müşteriye ürün teslim etmek veya bir görevi tamamlamak için kullanın. | Tüketiciler bunu görebilir ve izleyebilir. | Evet |
Teslim Alma Görevi | Bir müşteriden mal alınmasını belirtmek için kullanın. Her alma görevi için ilgili bir teslimat göreviniz olmalıdır. | Tüketiciler bunu görebilir ve izleyebilir. | Hayır |
Müsaitlik durumu görevi | Sürücünün ara vermesi veya araca yakıt doldurması gibi durumlarda aracın hizmet için kullanılamadığını belirtir. | Tüketiciler tarafından görülemez. | Hayır |
Planlanmış Duraklatma Görevi | Belirli bir konumda durma gerektiren teslimat dışı bir görev. Belirli bir konumda günlük olarak planlanmış toplama durakları için planlanmış durak görevlerini kullanın. Bu görevler, aynı konumdaki diğer teslimat veya teslim alma işlemlerinden bağımsızdır. Ayrıca, teslim kutularından yapılan teslimatlar için planlanmış durak görevleri oluşturabilir veya servis merkezleri ve servis noktalarında aktarma veya durak noktalarını modellemek için bu görevleri kullanabilirsiniz. | Tüketiciler bu görevi izleyemez ancak diğer görevleri izlerken görebilir. | Hayır |
Görev ve yolculuk yaşam döngüsü
Bu bölümde, Fleet Engine'daki yayınlama görevi yaşam döngüsü hakkında ayrıntılı bilgi verilmektedir. Sürücünün planlanan konumda bir görevi tamamlaması için aracın bir durağa gitmesi gerektiğinden görev yaşam döngüsü, araç yolculuğuna bağlıdır.
1. Görev oluşturma
Fleet Engine'da bir görevi ilk kez oluşturduğunuzda, görev için çeşitli alanları bir durakla ilişkilendirmeden bağımsız olarak ayarlarsınız.
Mülk | Açıklama |
---|---|
Eyalet | AÇIK olarak ayarlanır. |
Kimlikler | Tüketiciler için gönderi takibi kullanıyorsanız görevi ve izleme kimliğini ayarlayın. |
Zamanlama | Görevin planlanan süresi ve hedef zaman aralığı. Ayrıntılar için Görev zamanlaması bölümüne bakın. |
Planlanan konum | Görevin tamamlanacağı tam coğrafi koordinatı ayarlayın. |
2. Görev atama
Bir araca görev atadığınızda bunu bir araç durağıyla birlikte yaparsınız. Durak, sürücü durakla ilgili görevleri tamamlarken aracın park ettiği konumu gösteren enlem/boylam koordinatlarıdır. Durak genellikle yükleme rampası veya yol üzerinde çekilmiş bir konum gibi bir erişim noktasıdır.
3. Devam ediyor
Görevlerin durumu AÇIK veya KAPALI'dır. Ancak bir görev bir araca atandıktan sonra, aracın görevle ilişkisini ve aracın, görevin tamamlanacağı durakla olan konumunu izleyerek görevin ilerleme durumunu takip edebilirsiniz.
Araç bir duraktan ayrıldıktan veya navigasyona başladıktan sonra durak durumu ENROUTE
olarak değişir. Bu sayede tüketici kargo takibi, bir görevle ilgili olarak alıcıyı kalan durak sayısı ve tahmini varış saatiyle güncelleyebilir. Bu, tüketici kargo takibi veya filo takibi için gerçek zamanlı görselleştirmeleri de destekler.
4. Varış ve görev sonucu
Araç bir durağa ulaştığında durağın durumu ARRIVED
olarak ayarlanmalıdır. ENROUTE
Durdurulmuş durumunda olduğu gibi, bu durum görevin durumunu etkilemez ancak hem tüketici bildirimlerini hem de filo operatörleriniz tarafından kullanılan filo takibi için anlık raporlamayı destekler. Ayrıca, yayınlama optimizasyonları için kullanacağınız işlemle ilgili daha sonra analiz ve raporlama yapmanıza olanak tanır.
Araç bir durakta durduğunda sisteminiz, görev yolculuğunun geri kalanını aşağıdaki yaklaşımlardan birini kullanarak yönetebilir:
Tamamlanan görevleri kapatın.
Sürücü görevi tamamlandı olarak işaretlediğinde sisteminiz görevi duraktan kaldırabilir ancak durakta atanmış diğer görevler kalabilir.
Durağın tamamını araçtan çıkarın.
Sürücü tüm görevleri tamamlandı olarak işaretledikten ve araç bir sonraki durağa doğru yola çıktıktan sonra durak kaydının tamamını araçtan kaldırabilirsiniz. Fleet Engine, kaldırılan bir durakla ilişkili tüm görevleri otomatik olarak kapatır.
Görevlerin kapatılması başarı veya başarısızlık anlamına gelmez
Görevlerin kapatılması, yalnızca görevin artık devam eden bir görev olarak kabul edilmediğini gösterir.
CLOSED
durumundaki görevlerin sonucunu SUCCEEDED
veya FAILED
olarak ayarlarsınız. Bu, hem gönderi takibi için gerçek sonucu belirtmek hem de doğru faturalandırma için gereklidir. Fleet Engine yalnızca "BAŞARILI" durumundaki yayın görevleri için ücret alır.
Görev sonucunu ayarladıktan sonra değiştiremezsiniz.
Fleet Engine, bir görevin sonucunu işaretlerken görev sonucu konumunu bilinen son araç konumuyla otomatik olarak doldurur. Ancak, görev sonucu zamanı ve görev sonucu konumu ayarlandıktan sonra bunları değiştirebilirsiniz. Fleet Engine bu alanları geçersiz kılmaz.
5. Diğer görev senaryoları
Fleet Engine'da modellediğiniz tüm görevler tipik bir yolculuk akışına uymaz. Örneğin:
- Teslim alma görevleri. Daha sonra işleme alınması için bir paketin depoya iade edilmesiyle ilgili bir teslimat göreviniz varsa bu paket için, planlanan konum depo olarak ayarlanmış bir teslimat görevi oluşturmanız gerekir. Aksi takdirde, teslim alma görevleri genellikle teslimat görevleriyle aynı akışı izler.
- Görev yeniden atama. Bir görevi doğrudan farklı bir araca yeniden atayamazsınız. Bunun yerine, bir görevi bir araçtan diğerine taşımak için orijinal görevi kapatın ve yeni araca atamadan önce yeniden oluşturun. Halihazırda farklı bir araca atanmış bir görevin görev sıralamasını güncellerseniz Fleet Engine bir hata oluşturur.
- Görevleri silme. Araçlarda olduğu gibi Fleet Engine da yedi gün sonra güncellenmemiş görevleri siler. Daha önce kapatılmış bir görev için bir görev kimliğini yeniden kullanmayı denerseniz Fleet Engine, söz konusu kimlik son yedi gün içinde kullanıldıysa hata döndürür. Buna karşılık, görev verilerini yedi günden uzun süre saklamak istiyorsanız bu özelliği kendiniz uygulamanız gerekir (ör. 7 günlük saati sıfırlamak için planlanmış bir iş aracılığıyla).
Görev ilerleme durumunu paylaşma
Fleet Engine'da görev ilerleme durumunu gerçek zamanlı olarak izleyebilir ve sürücünün yolculuğunu iki temel şekilde paylaşabilirsiniz:
- Tüketicilerin gönderim siparişlerinin veya istenen servis siparişlerinin durumunu öğrenmesi için tüketici deneyimi.
- Filo operatörlerinizin filodaki araçların durumunu izleyip analiz etmesine olanak tanıyan Filo takibi.
Tüketici deneyimi
Görev ilerleme durumunu paylaşmak için JavaScript Tüketici SDK'sını kullanarak tüketici deneyimini ayarlarsınız. SDK ile görsel web veya mobil uygulama deneyimini geliştirerek tüketicilerin tahmini varış zamanları ve teslimat aracının gerçek zamanlı konum güncellemelerinin yanı sıra gönderilerinin durumunu izleyebilmesini sağlayabilirsiniz. Tüketici SDK'sı planlanmış görevlere genel bakış başlıklı makaleyi inceleyin.
Tüketici SDK'sı, Fleet Engine'a bağlanmak için bir JavaScript haritası ve veri bileşenleri içerir. Harita, standart bir google.maps.Map
nesnesinin yerini alan bir öğedir. Müşteriniz, son kullanıcılarınızın kimliğini doğrulamalı ve yalnızca müşteriye özgü bilgileri döndürmek için Google Cloud projenizdeki Yayınlama tüketici rolünü kullanmalıdır. Fleet Engine, yanıtlardaki diğer tüm bilgileri filtreler ve çıkartır. Örneğin, müsait olmama görevi sırasında son kullanıcıyla hiçbir konum bilgisi paylaşılmaz.
Fleet Engine'da, görev ilerleme durumunu tüketiciyle paylaşmak için aşağıdaki ayarları etkinleştirirsiniz:
- Görevler
TaskTrackingViewConfig
özelliğini kullanır. İsteğe bağlı. - Görevler, kitaplığın bir tüketici için alakalı görevleri tanımlaması gereken bir izleme kimliği kullanır.
Filo Takibi
JavaScript Filo Takip Kitaplığı, filolardaki araçların konumlarını neredeyse gerçek zamanlı olarak görselleştirmenize olanak tanır. Kitaplık, teslimat araçlarının yanı sıra atanmış görevlerin görselleştirmesini sağlamak için Fleet Engine API'yi kullanır. JavaScript tüketici SDK'sı gibi, Fleet Engine'a bağlanmak için kullandığınız veri bileşenlerine sahip standart bir google.maps.Map
varlığı için doğrudan kullanılabilen bir JavaScript harita bileşeni içerir.
Bu kitaplık, teslimat araçlarının Fleet Engine'da oluşturulduktan hemen sonra görünürlüğünü gösterir. Bu uygulama için Fleet Engine Hizmeti Süper Kullanıcı Cloud IAM rolünü kullanır ve teslimat araçlarına ve ilişkili görevlerine erişim için Java Web Token hak talebinde bulunursunuz.
Planlanmış görev senaryoları
Bu bölümde, rehberin bu noktasında verilen bilgileri özetleyen çeşitli görev senaryoları gösterilmektedir. Bu makale, işletmenize bağlı olarak Fleet Engine'da nakliye operasyonlarınızı modelleme konusunda kullanabileceğiniz çeşitli yöntemleri anlamanıza yardımcı olmak için hazırlanmıştır.
Takipli teslimat
Bu yayınlama senaryosu, hem yolculuğun başında depodan ayrılırken hem de yolculuğun sonunda depoya varırken depoya atanan bir planlanmış durak görevini gösterir. Ayrıca, bir durak için biri başarısız olan iki teslimat görevi de gösterilir. Bu atamayı, depoya gidip gelme izlemesini etkinleştirmek ve günün başlangıç ile bitiş zamanlarını modellemek için kullanın. Planlanmış durdurma görevleri için faturalandırma yapılmaz.
Depo teslimatıyla teslim alma
Bu senaryoda, teslimat işleminin gerekli teslimat görevini içerecek şekilde nasıl modelleneceği gösterilmektedir. Depoya iade işlemini faturalandırma amacıyla teslim olarak ayarlayın.

Besleyici araç
Bu senaryoda, dağıtıcı aracın ortada planlanmış bir durakla iki teslimat yaptığı gösterilmektedir. Amaç, teslimat aracının gönderilecek bir dizi paketle depoya dönmesini sağlamaktır. Besleyici aracı, planlanmış bir durakla da modelleyebilirsiniz.

Görev Zamanlaması
Görev sürelerini modellemek, etkili rota planlama, tahmini varış süreleri ve teslimat beklentilerini yönetme konusunda yardımcı olur. Fleet Engine, bu bölümde açıklandığı gibi görev zamanlamasını modellemek ve tahmin etmek için iki temel işlev sunar.
Görev süresi
Görev süresi, sürücünün durakta görevleri tamamlamak veya ara vermek için harcayacağı tahmini süreyi modelleyen zorunlu bir alan olan task_duration
alanıyla belirlenir. Duraklarda ise bu, bir durağa vardıktan sonra paketleri boşaltma ve alıcıyla etkileşim kurma gibi gerekli tüm etkinlikleri kapsar. Bu bilgiler ne kadar ayrıntılı olursa Filo Motoru, yolculuğun sonraki durakları için gerçekçi varış süreleri ve tahmini varış süreleri sağlayabilir.
Alan ayrıntıları için Protocol Buffers Dokümanları'ndaki Süre bölümüne bakın.
Hedef zaman aralığı
Hedef zaman, bir görev için önerilen zaman aralığını tanımlar. Bu zaman aralığı genellikle müşterilerle iletişim kurmak veya dahili planlama amacıyla kullanılır. Bunu, başlangıç ve bitiş zamanlarından oluşan target_time_window
alanıyla ayarlarsınız.
Bu, rota hesaplamalarını doğrudan etkilemez ancak tüketiciyi bir paket teslimatıyla ilgili zaman aralığı veya planlanmış bir servis çalışanının ne zaman geleceğine dair uyarma gibi durumlar için kullanılabilir.
Görev Özellikleri
Fleet Engine'daki görev özellikleri, ListTasks
isteği kullanılırken görevleri belirli özelliklere göre filtrelemek için kullanışlı bir yol sunar. Tüketicilere bilgi aktarmak veya filo takibi yapmak için Cloud Logging ile analizler için özel görev özelliklerini de kullanabilirsiniz. Amaç, araç özelliklerine benzer: Bu özelliği, teslimat operasyonlarınıza daha odaklanmış bir bakış açısı kazandırmak için kullanın.
Sınırlamalar ve Kısıtlamalar
- Özel özellik oluşturma: Fleet Engine, görev başına tanımlayabileceğiniz özel özellik sayısını sınırlar. Bu sınırlarda artış isteğinde bulunmak için satış temsilcinizle iletişime geçin.
- Filtreleme özellikleri: Görev özellikleri, filtreleme esnekliği sunsa da temel görev veri alanlarının yerini almaz. Özel ihtiyaçlarınıza göre ek filtreleme yapmak için bu raporları kullanın.
- Her özelliğin benzersiz bir anahtarı olmalıdır.
- Kullanıcı tarafından görülebileceği için kişisel kimliği tanımlayabilecek bilgileri veya diğer hassas bilgileri özellik değerine eklemeyin.
- Veri doğrulaması: Özel özelliklerinizin veri türlerinin ve biçimlerinin Fleet Engine'ın şartlarına uygun olduğundan emin olun.