Bu belgede, Fleet Engine'deki 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ının beklendiği yer arasındaki gerçek dünya ilişkisini modellemek amacıyla görevler oluşturur ve bunları bir araç durağıyla ilişkilendirirsiniz. Araçların Fleet Engine'de nasıl çalıştığını daha iyi anlamak için Araçlara giriş bölümünü 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'de planlanmış bir görev, bir ulaşım işlemi kapsamında daha geniş bağlamda araç kullanan bir sürücü tarafından tamamlanan bağımsız bir işlemi temsil eder. Sürücü için özel hedefi tanımlar. Örneğin:
- Bir mal teslim etmek için
- kargo deposuna geri dönmek üzere bir paket almak
- 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 eylem türünü tanımlar. |
Görev Kimliği | Sistem 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örevin 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 diyagramı da inceleyerek aşağıdaki noktaları göz önünde bulundurabilirsiniz:
- 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ünün görevleri tamamlarken aracın duracağını gösterir. Örneğin, bir araç bir apartman kompleksinin girişinde durur ve sürücü, paketleri kompleks içindeki ayrı posta odalarına manuel olarak teslim eder.
- Durum: Hem görevler hem de araç durakları birbirinden farklı bir durum alanına sahiptir.
- Araç durma durumu, filo izleme amacıyla kullanılan aracın durağa ilişkin ilerleme durumunu yansıtır.
- Görevin durumu, görevin etkin olup olmadığını gösterir. Bu durum, sonucu belirleme ya da ürünü bir araca atamak gibi görevler üzerinde yapılacak diğer işlemleri 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ı gösterir. - 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'deki araç kimliklerine benzer şekilde, görevlerin her biri, sistem içindeki diğer görevlerden ayırt edilebilmesi için bir kimlik içermelidir. İş akışınızdaki tüm görevlere
kimliklerini kullanarak referans verir ve görevleri 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'in araç adı kaynaklarını oluşturmasına 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 yapmak 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 ulaşım işlemi içinde farklı eylemleri 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ı |
---|---|---|---|
Teslim Görevi | Müşterilere ürün teslim etmek veya bir görevi tamamlamak için kullanın. | Müşteriler bunu görebilir ve takip edebilir. | Evet |
Teslim Alma Görevi | Müşterilerden ürün teslim almayı belirtmek için kullanın. Her teslim alma görevi için ilgili bir teslimat göreviniz olmalıdır. | Müşteriler bunu görebilir ve takip edebilir. | Hayır |
Kullanılamazlık 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üketicilere gösterilmez. | Hayır |
Planlanmış Durdurma Görevi | Belirli bir konumda durmayı gerektiren teslim edilmeyen 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, açılır kutulardan yapılan koleksiyonlar için veya servis merkezlerinde ve hizmet noktalarında bulunan besleyici-araç aktarımları ya da duraklarını modellemek üzere planlanmış durdurma görevleri oluşturabilirsiniz. | 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'deki teslim görevi yaşam döngüsüyle ilgili ayrıntılar sunulmaktadır. Sürücünün bir görevi planlanan konumunda tamamlayabilmesi için aracın bir durağa gitmesi gerektiğinden görev yaşam döngüsü araç yolculuğuyla bağlantılıdır.
1. Görev oluşturma
Fleet Engine'de ilk kez bir görev oluşturduğunuzda, görev için çeşitli alanları bir durakla ilişkilendirmekten bağımsız olarak ayarlarsınız.
Mülk | Açıklama |
---|---|
Eyalet | AÇ olarak ayarlandı |
Kimlikler | Tüketicileriniz için kargo 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ğı kesin coğrafi koordinatı belirleyin. |
2. Görev ataması
Bir araca görev atadığınızda, bunu araç durmasıyla birlikte yaparsınız. Duraklar, sürücünün durakla ilişkili görevleri tamamlarken aracın park ettiği konumu gösteren enlem/boylam koordinatlarıdır. Duraklar genellikle yükleme iskelesi veya yola kilitlenmiş konum gibi bir erişim noktasıdır.
3. Devam ediyor
Görevlerin durumu AÇIK veya KAPALI'dır. Bununla birlikte, bir araca bir görev atandığında, aracın araçla ilişkilendirmesi ve tamamlanması gereken durakla bağlantılı olarak aracın konumuyla ilgili ilerlemeyi takip edebilirsiniz.
Araç bir duraktan ayrıldıktan veya navigasyona başladıktan sonra durak durumu ENROUTE
olarak değişmelidir. Bu şekilde tüketici gönderisi takibi, alıcıyı görevle ilgili olarak kalan durak sayısı ve tahmini varış zamanı gibi güncelleyebilir. Bu, tüketici gönderi 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
durdurma durumunda olduğu gibi bu da görevin durumunu etkilemez. Ancak filo operatörleri tarafından kullanılan filo takibi için hem tüketici bildirimlerini hem de gerçek zamanlı 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 onu duraktan kaldırabilir ancak durağı, kendisine atanmış diğer görevlerle bırakabilir.
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örevin kapatılması başarılı veya başarısız olduğu anlamına gelmez
Bir görevin kapatılması yalnızca görevin artık devam eden olarak kabul edilmediği anlamına gelir.
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 SUCCEEDED durumundaki teslimat görevlerini ücretlendirir.
Bir görev sonucu belirledikten sonra bunu 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 depoya iade edilecek bir paket için teslimat göreviniz varsa bu paket için, planlanan konumu 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örevi 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ış görev için görev sıralamasını güncellerseniz Fleet Engine hata verir.
- Görevleri silme. Araçlarda olduğu gibi, Fleet Engine yedi gün sonra güncellenmemiş görevleri siler. Daha önce kapatılmış bir görev için 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ş
Fleet Engine'de görevlerin ilerlemesini 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 talep edilen hizmet siparişlerinin durumunu bilmesini sağlayan 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 bir web veya mobil uygulama deneyimini iyileştirebilirsiniz. Böylece tüketiciler, tahmini varış zamanları ve teslimat aracıyla ilgili anlık konum güncellemelerinin yanı sıra gönderimlerinin durumunu izleyebilir. Tüketici SDK'sı planlanmış görevlere genel bakış başlıklı makaleyi inceleyin.
Tüketici SDK'sı, Fleet Engine'e bağlanmak için bir JavaScript haritası ve veri bileşeni bileşenleri içerir. Harita, standart bir google.maps.Map
nesnesinin yerini alır. 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, "kullanılamayan" görevi sırasında son kullanıcıyla konum bilgisi paylaşılmaz.
Fleet Engine'de, görevlerin ilerlemesini 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 tüketiciyle alakalı görevleri tanımlaması gereken bir izleme kimliği kullanır.
Filo Takibi
JavaScript Filo İzleme Kitaplığı, filolarındaki araçların konumlarını neredeyse gerçek zamanlı olarak görselleştirmenizi sağlar. 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ıp teslim araçlarına ve ilişkili görevlerine erişim için Java Web Jetonu talebi sağlarsınız.
Planlanmış görev senaryoları
Bu bölümde, kılavuzun bu noktasında verilen bilgileri özetleyen çeşitli görev senaryoları gösterilmektedir. Bu kurs, işletmenize bağlı olarak Fleet Engine'de ulaşım işlemlerinizi modelleyebileceğiniz çeşitli yöntemleri anlamanıza yardımcı olmayı amaçlar.
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 gösterilir. Bu atamayı, depodan çıkış zamanlarına yönelik izlemeyi etkinleştirmek ve günün başlangıç ve bitiş zamanlarını modellemek için kullanın. Planlanmış durdurma görevlerinde faturalandırma yapılmaz.
Depo teslimatıyla teslim alma
Bu senaryoda, pickup'ın ilgili teslimat göreviyle birlikte 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 zamanlarının modellenmesi etkili rota planlamasına, GMR'lere ve teslimat beklentilerinin yönetimine 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, task_duration
alanı ile ayarlanır. Bu alan, sürücünün durakta görevleri tamamlamak veya mola vermek için harcadığı tahmini süreyi modelleyen zorunlu bir alandır. Duraklamalar için bu, durağa vardıktan sonra paketleri indirme ve alıcıyla etkileşim kurma gibi tüm gerekli 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 Protokol Arabellekleri Belgeleri'ndeki 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 bir tüketiciyi paket teslimatının zaman aralığıyla ilgili olarak uyarmak veya planlı bir servis çalışanının ne zaman teslim edileceği konusunda uyarmak gibi durumlarda 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 yapmak amacıyla özel görev özelliklerini de kullanabilirsiniz. Amaç, araç özelliklerinin amacına benzer: Teslimat operasyonlarınıza daha odaklanmış bir bakış açısı oluşturmak için bunu 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ırlandırır. Bu sınırlarda artış talep etmek için satış temsilcinizle iletişime geçin.
- Filtreleme özellikleri: Filtreleme esnekliği sunsa da görev özellikleri, temel görev veri alanlarının yerine geçmez. Ö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 özellik değerine kişisel kimliği tanımlayabilecek bilgiler veya diğer hassas bilgiler eklemeyin.
- Veri doğrulaması: Özel özelliklerinizin veri türlerinin ve biçimlerinin Fleet Engine'ın şartlarına uygun olduğundan emin olun.