本文档介绍 Fleet Engine 中的计划任务服务。它假设 您已经阅读了什么是 Fleet Engine?,并且了解了 所需的引擎服务功能
在阅读本文档时,请注意以下几点:
- 您可以创建任务并将其与车辆停靠站相关联, 模型任务和任务位置之间的 车辆应停放,以便驾驶员完成任务。 阅读车辆简介,了解如何提升 了解车辆在 Fleet Engine 中的工作原理。
- 用于计划任务的舰队引擎使用以下资源:
Task
和DeliveryVehicle
。Fleet Engine 同时提供 gRPC 服务和 REST 接口: <ph type="x-smartling-placeholder">
什么是计划任务?
Fleet Engine 中的计划任务代表要执行的单个操作 驾驶员在更广的情境下使用车辆来完成交易 运输操作。它定义了驱动程序的特定目标。 例如:
- 向住宅交付商品
- 自提包裹并将其退回配送站
- 在某个营业地点停车,为客户提供现场服务
- 在预定经停点为车辆加油
任务元素
下图展示了以标准计划形式呈现的这些任务元素 行程规划。
基本任务字段
字段 | 说明 |
---|---|
类型 | 定义与任务关联的操作类型。 |
任务 ID | 唯一标识系统中的任务的字符串。 |
计划内的位置 | 指定应执行任务的预期位置。 此位置并不总是与 停车。 |
州 | 指示任务是处于打开还是关闭状态。 |
任务结果 | 指示任务是成功还是失败。 |
任务数据模型
下图说明了 Task
资源的数据模型
与其关联的 DeliveryVehicle
资源的图表一起显示。您可以
请查看这两个图表,以探索这两种资源之间的关系,
请注意以下几点:
- 计划的位置:车辆停靠点和任务都有计划的位置,
互不相同
- 对于任务,计划位置表示驾驶员操作的位置 错误。例如,向大型住宅客户配送 15 个包裹 需要将包裹运送到 同一个复杂。
- 对于车辆经停点,计划位置会指明停靠站 在驾驶员完成任务的同时,自动驾驶汽车。例如, 车辆在公寓大楼入口处停下来,司机 将包裹手动寄送到建筑群内的不同邮寄室。
- 状态:任务和车辆停靠站都有一个 state 字段,它不同于
相互交流。
- 车辆停止状态反映的是车辆的行驶进程, 与停靠站的关系,用于车队跟踪。
- 任务状态指示任务是否处于活动状态。这个 会影响在任务中完成的其他操作,例如设置 或者将其分配给车辆。
任务结果:任务结果是数据模型中的一个重要字段, 因为它用于表示任务的成功与否, 任务状态。
ID:
- 当您将任务分配给车辆时,Fleet Engine 会在
deliveryVehicleId
字段。这个只读字段用于指明 所分配的任务。 - 任务 ID 是系统中所有任务的唯一标识符。
- 跟踪 ID 用于标识任务,以便跟踪物流信息。
- 当您将任务分配给车辆时,Fleet Engine 会在
任务数据模型
车辆数据模型
任务 ID
与 Fleet Engine 中的车辆 ID 类似,每个任务都必须包含一个 ID
将其与系统中的其他任务区分开来。您可以引用和管理
按 ID 过滤工作流中的所有任务。您可以使用
CreateTaskRequest
服务,并提供符合以下要求的 ID 字符串:
这些要求。
然后,此字符串包含任务资源本身名称的一部分,
Task
对象中仅限输出的字段。这类似于 Fleet Engine
构造车辆名称资源。请参阅资源命名部分,
Fleet Engine 简介。
属性 | 说明 |
---|---|
唯一性 | 每个任务 ID 在 Fleet Engine 实现中都必须是唯一的,以避免混淆并确保正确标识。 |
格式 |
|
好的任务 ID 示例 |
|
---|---|
不允许使用的任务 ID |
|
任务类型
Fleet Engine 支持使用各种任务类型来表示 运输操作。此处对它们进行了说明及其公开范围 和结算明细
任务类型 | 说明 | 货运跟踪可见性 | 已结算 |
---|---|---|---|
交付任务 | 用于为客户送餐或完成任务。 | 消费者可以查看和跟踪这些信息。 | 是 |
自提任务 | 用于指明从客户处自提商品。您必须 所有自提任务都有相应的配送任务。 | 消费者可以查看和跟踪这些信息。 | 否 |
不可用任务 | 将车辆标识为无法维修,例如当驾驶员休息或给车辆加油时。 | 消费者看不到。 | 否 |
计划停止任务 | 非送货任务,此类任务需要在特定地点经停。使用计划停止任务在特定地点按天安排每日取件站,与同一位置的其他送货或自提任务无关。你还可为来自保管箱的集合创建计划停靠任务,或者模拟给服务中心和服务点的供给车辆接送或停靠点。 | 使用方无法跟踪此特定任务,但可将其视为跟踪其他任务的一部分。 | 否 |
任务和历程生命周期
本部分详细介绍了舰队中的交付任务生命周期 。任务生命周期与车辆行程相关联,因为 车辆必须驶到一个经停点,司机才能在该区域完成任务 计划地点
1. 创建任务
首次在 Fleet Engine 中创建任务时,您可以设置各种字段 而不会影响它们与停止点的关联
属性 | 说明 |
---|---|
州 | 设为“打开” |
ID | 如果您使用物流跟踪,请设置任务和跟踪 ID 。 |
计时 | 任务的计划时长及其目标时间范围。请参阅 如需了解详情,请参阅任务时间。 |
计划内的位置 | 设置要执行任务的精确地理坐标 已完成。 |
2. 任务分配
将任务分配给车辆时,需要与车辆一起执行 停止。经停点是纬度/经度坐标,表示 在驾驶员完成与停车相关的任务时,车辆会停放。 停靠站通常是某个接入点,例如装货停靠点或相邻的道路 位置。
3. 进行中
任务的状态为“打开”或“已关闭”。但是,将任务分配给 您可通过车辆与车辆的关联来跟踪其进度 以及车辆相对于任务目标停靠站的位置 已完成。
一旦车辆离开停车点或开始导航,
经停点应更改为 ENROUTE
。这样,消费者货运跟踪就可以
更新任务的收件人,并提供剩余经停次数和预估时间
到达时间。这也支持为消费者提供任何实时可视化
货运跟踪或车队跟踪。
4. 到达和任务结果
当车辆到达一个停车点时,该停车点的状态应设置为
ARRIVED
。与 ENROUTE
停止状态一样,这不会影响
但同时支持使用方通知和任何实时
报告车队运营商使用的车队跟踪情况。它还可以
针对您要用于投放广告的运营活动进行分析和报告
优化。
一旦车辆到达一个停车点,您的系统就可以处理其余的任务 之旅:
在任务完成后将其关闭。
当驾驶员将任务标记为完成时,您的系统可以将其从 停止,但保留该停靠点,并向其分配其他任务。
从车辆上移除整个经停点。
司机完成所有任务后,车辆正在前往 下一站,您可以从车辆上移除整个经停点。舰队引擎 自动关闭与已移除的停止相关的所有任务。
关闭任务并不表示操作成功或失败
关闭任务仅表示该任务不再被视为正在进行中。
对于处于 CLOSED
状态的任务,您可以将其结果设置为 SUCCEEDED
或
FAILED
。只有这样才能指明送货的实际结果
以便正确结算。Fleet Engine 仅对满足以下条件的交付任务收费:
状态为 SUCCEEDED。
任务结果一经设置便无法更改
标记任务结果时,Fleet Engine 会自动填入该任务 将结果位置与最近一次的已知车辆位置相关联。但您可以 任务结果时间和任务结果位置。 Fleet Engine 不会替换这些字段。
5. 其他任务场景
并非您在 Fleet Engine 中建模的所有任务都能放入典型的历程流程中。例如:
- 自提任务。当您有需要退货的自提任务时 发送到仓库以便稍后处理,您应该创建相应的 delivery 任务,计划位置设置为仓库。 除此之外,自提任务通常遵循与配送任务相同的流程。
- 重新分配任务。您无法将任务直接重新分配给 。相反,如需将任务从一个车辆移到另一个车辆中,请关闭 原始任务,然后重新创建,再为其分配新车辆。如果 更新已分配给 Fleet Engine 就会出错。
- 删除任务。与车辆一样,Fleet Engine 会删除 更新。如果您将某个任务 ID 重复用于 Fleet Engine 会返回错误(如果已使用相应 ID) 在过去 7 天内获得的收入反之,如果您想延长任务数据的保留期限 则必须自行实现该功能,例如通过 以重置 7 天时钟。
分享任务历程
借助 Fleet Engine 中的任务历程共享功能,您可以 实时路况,并通过以下两种主要方式分享驾驶员的行程:
- 分享消费者转化历程,让消费者了解自己所处的阶段 送货订单或请求的服务订单。
- 车队跟踪,供车队运营商跟踪和分析状态 车辆数量。
分享消费者转化历程
如需将消费者转化历程分享功能整合到您的运营中,请设置转化历程 使用 JavaScript Consumer SDK 进行共享。借助 SDK,您可以增强 直观的 Web 或移动应用体验,方便消费者监控应用的状态, 送货以及预计到达时间和实时位置信息更新 。请参阅消费者转化历程分享概览: 计划任务。
消费者转化历程共享 SDK 包含 JavaScript 地图和数据组件
以便与 Fleet Engine 建立连接。地图可以直接替代
标准 google.maps.Map
对象。您的客户端应对您的终端进行身份验证
并使用 Google Cloud 项目中的 Delivery 使用方角色来执行以下操作:
仅返回特定于客户的信息。Fleet Engine 会滤除并隐去所有信息
提供更多信息例如,在执行不可用任务时
不会与最终用户分享位置信息。
在 Fleet Engine 中,您可以为消费者转化历程启用以下设置 共享:
- 任务使用
TaskTrackingViewConfig
属性。可选。 - 任务使用跟踪 ID,库需要将其标识为相关 ID 为消费者执行的任务
车队跟踪
利用 JavaScript 舰队跟踪库,您可以直观呈现
在他们的车队中。该库使用
Fleet Engine API:可直观呈现送货车辆以及
分配给他们的任务与 JavaScript 使用方 SDK 一样,它包含 JavaScript
地图组件,可直接替换标准 google.maps.Map
实体与用于连接 Fleet Engine 的数据组件相关联。
此库会在交付车辆后立即显示其状态 在 Fleet Engine 中创建的。对于此实现,您将使用 Fleet Engine 服务超级用户 Cloud IAM 角色,并且您提供了以下服务的 Java 网络令牌声明 对送货车辆及其相关任务的访问权限。
计划任务场景
此部分显示了各种任务场景,总结了 。旨在帮助您了解 在 Fleet Engine 中构建运输运营模型的各种方法, 具体取决于您的业务情况
配送跟踪
此传送场景显示了一个计划停止任务
并在行程结束时抵达补给站。它还
针对一次停止显示两项传送任务,但其中一项任务失败。使用此
启用进出仓库的跟踪,并用作模型分析方法,
当天的开始和结束时间。无账单
与计划停止任务有关
自提和配送到货
此场景显示了如何模拟提货及其 所需的相应交付任务。您将返回补给站设为 delivery 以供结算之用。
![](https://developers.google.cn/static/maps/documentation/mobility/fleet-engine/essentials/images/taskScenarioPickup.png?authuser=7&hl=el)
喂食车
此场景显示了两封包裹,其中中间有一次预定的经停点, 供给车辆,目的是让送货车辆能够 带着一些要发货的包裹回到补给站您 还可以根据预定停靠点为供给车辆建模。
![](https://developers.google.cn/static/maps/documentation/mobility/fleet-engine/essentials/images/taskScenarioFeeder.png?authuser=7&hl=el)
任务计时
根据模型估算任务时间有助于有效规划路线、预计预计到达时间和管理 投放预期Fleet Engine 提供了两个关键功能,用于建模和 预测任务时间,如本部分所述。
任务时长
任务时长通过 task_duration
字段设置,
根据模型估算驾驶员在经停点上完成任务的预计时间
或是休息一下对于停靠站,此指标涵盖所有必要的 activity
例如卸载包裹和与乘客互动
收件人。此信息越具体,Fleet Engine 可
为行程中的后续站点提供切合实际的到达时间和预计到达时间。
如需了解字段详情,请参阅 Protocol Buffer 文档中的时长。
目标时间范围
目标时间定义了任务的建议时间范围,通常用于
与客户沟通或进行内部规划目的。您可以使用
target_time_window
字段,其中包含开始时间和结束时间。
这不会直接影响任何路线计算,但可用于
例如提醒消费者查看包裹的时间窗口
以及计划 Service Worker 何时会到达。
任务属性
Fleet Engine 中的任务属性提供了一种便捷的方式,让您能够根据特定条件
使用 ListTasks
请求时,您可以详细了解特定特征。您还可以使用
自定义任务属性,用于使用 Cloud Logging 以及
在消费者购买历程分享或车队跟踪中传达信息。通过
用途与车辆属性类似:用于制作更精细的
让大家清楚了解交付运营情况
局限性和限制
- 自定义属性创建:Fleet Engine 会限制 属性。请联系您的销售代表 您可以申请提高这些限制。
- 过滤功能:在提供过滤功能的同时, 属性不会替换核心任务数据字段。用途 额外过滤功能。
- 每个属性必须具有唯一的键。
- 请勿包含个人身份信息或其他敏感信息 信息,因为用户可能会看到这些信息。
- 数据验证:确保自定义数据的数据类型和格式 属性是否符合 Fleet Engine 的要求。