В этом документе описывается служба запланированных задач в Fleet Engine. Предполагается, что вы прочитали Что такое Fleet Engine? и знаете о конкретных возможностях службы Fleet Engine, которые вам нужны.
При чтении этой документации помните следующее:
- Вы создаете задачи и связываете их с остановкой транспортного средства , чтобы смоделировать реальную связь между задачей и местом, где ожидается остановка транспортного средства, чтобы водитель мог выполнить задачу. Прочитайте Введение в транспортные средства, чтобы лучше понять, как транспортные средства работают в Fleet Engine.
- Fleet Engine для запланированных задач использует следующие ресурсы :
Task
иDeliveryVehicle
. Fleet Engine предоставляет как службу gRPC, так и интерфейсы REST:
Что такое запланированная задача?
Запланированная задача в Fleet Engine представляет собой индивидуальное действие , которое должен выполнить водитель, использующий транспортное средство в более широком контексте транспортной операции. Она определяет конкретную цель для водителя. Например:
- доставить товар в резиденцию
- забрать посылку для возврата на склад отправки
- останавливаться в определенном месте, чтобы оказать клиенту услугу на месте
- сделать запланированную остановку для заправки транспортного средства
Элементы задачи
На следующем рисунке показаны элементы задачи в стандартной запланированной поездке транспортного средства.
Основные поля задач
Поле | Описание |
---|---|
Тип | Определяет тип действия, связанного с задачей. |
Идентификатор задачи | Строка, уникально идентифицирующая задачу в системе. |
Планируемое местоположение | Указывает предполагаемое место, где должна быть выполнена задача. Это место не всегда совпадает с запланированным местом остановки транспортного средства. |
Состояние | Указывает, открыта или закрыта задача. |
Результат задачи | Указывает, была ли задача выполнена успешно или нет. |
Модель данных для задач
Следующие диаграммы иллюстрируют модель данных ресурса Task
вместе с диаграммой для связанного с ним ресурса DeliveryVehicle
. Вы можете просмотреть обе диаграммы, чтобы изучить отношения между двумя ресурсами, имея в виду следующее:
- Планируемое местоположение : остановки транспортных средств и задания имеют запланированные местоположения , отличные друг от друга.
- Для задач запланированное местоположение указывает, где должно произойти действие водителя. Например, 15 доставок посылок в большой жилой комплекс требуют доставки в разные почтовые отделения в пределах одного комплекса.
- Для остановок транспортных средств запланированное место указывает остановку транспортного средства, пока водитель выполняет задачи. Например, транспортное средство останавливается у входа в жилой комплекс, и водитель доставляет посылки вручную в отдельные почтовые отделения внутри комплекса.
- Состояние : как задачи, так и остановки транспортных средств имеют поле состояния , отличное друг от друга.
- Состояние остановки транспортного средства отражает перемещение транспортного средства относительно остановки и используется для отслеживания автопарка.
- Состояние задачи указывает, активна ли задача. Это влияет на другие операции, которые необходимо выполнить над задачами, например, на установку ее результата или назначение ее транспортному средству.
Результат задачи : Результат задачи является важным полем в модели данных, поскольку он используется для указания успеха или неудачи задачи, независимо от ее состояния.
Идентификаторы :
- Когда вы назначаете задачу транспортному средству, Fleet engine заполняет поле
deliveryVehicleId
. Это поле только для чтения указывает транспортное средство, которому назначена задача. - Идентификаторы задач — это уникальные идентификаторы всех задач в вашей системе.
- Идентификаторы отслеживания идентифицируют задачу с целью отслеживания отправления.
- Когда вы назначаете задачу транспортному средству, Fleet engine заполняет поле
Модель данных задач
Модель данных транспортного средства
Идентификаторы задач
Подобно идентификаторам транспортных средств в Fleet Engine, каждая задача должна содержать идентификатор, чтобы отличать ее от других задач в системе. Вы ссылаетесь на все задачи в своем рабочем процессе и управляете ими по их идентификатору. Вы создаете эти идентификаторы, используя службу CreateTaskRequest
и предоставляя строку идентификатора, которая соответствует требованиям, описанным в этом разделе.
Эта строка затем включает часть имени самого ресурса задачи, выходное поле только для объекта Task
. Это аналогично тому, как Fleet Engine создает ресурсы имени транспортного средства. См. раздел Именование ресурсов во Введении в Fleet Engine .
Свойство | Описание |
---|---|
Уникальность | Каждый идентификатор задачи должен быть уникальным в рамках вашей реализации Fleet Engine, чтобы избежать путаницы и обеспечить правильную идентификацию. |
Формат |
|
Хорошие примеры идентификаторов задач |
|
---|---|
Запрещенные идентификаторы задач |
|
Типы задач
Fleet Engine поддерживает различные типы задач для представления различных действий в рамках транспортной операции. Они описаны здесь вместе с их видимостью и деталями выставления счетов.
Тип задачи | Описание | Видимость отслеживания отправлений | Выставлен счет |
---|---|---|---|
Задача доставки | Используется для передачи вещей или выполнения задания для клиента. | Потребители могут это видеть и отслеживать. | Да |
Задача по сбору | Используйте для обозначения забора товара у клиента. Для любой задачи забора товара у вас должны быть соответствующие задачи доставки. | Потребители могут это видеть и отслеживать. | Нет |
Задача недоступности | Определяет, что транспортное средство недоступно для обслуживания, например, когда водитель делает перерыв или заправляет автомобиль. | Невидимо для потребителей. | Нет |
Запланированная задача остановки | Задача, не связанная с доставкой, требующая остановки в определенном месте. Используйте запланированные задачи остановки для ежедневных запланированных остановок сбора в определенном месте, независимо от других доставок или заборов в том же месте. Вы также можете создавать запланированные задачи остановки для сбора из ящиков для сбора или для моделирования передач транспортных средств-фидеров или остановок в сервисных центрах и пунктах обслуживания. | Потребители не могут отслеживать эту конкретную задачу, но могут видеть ее как часть отслеживания других задач. | Нет |
Жизненный цикл задачи и путешествия
В этом разделе приведены сведения о жизненном цикле задачи доставки в Fleet Engine. Жизненный цикл задачи связан с поездкой транспортного средства, поскольку транспортное средство должно доехать до остановки, чтобы водитель мог выполнить задачу в запланированном месте.
1. Создание задачи
Когда вы впервые создаете задачу в Fleet Engine, вы задаете различные поля для задачи независимо от их привязки к остановке.
Свойство | Описание |
---|---|
Состояние | Установить на ОТКРЫТО |
Идентификаторы | Задайте задачу и идентификатор отслеживания, если вы используете отслеживание отправлений для своих потребителей. |
Сроки | Планируемая длительность задачи и ее целевое временное окно. Подробнее см. в разделе Сроки задачи . |
Планируемое местоположение | Укажите точные географические координаты места, где должна быть выполнена задача. |
2. Постановка задачи
Когда вы назначаете задачу транспортному средству, вы делаете это в сочетании с остановкой транспортного средства. Остановки — это координаты широты/долготы, которые указывают место, где транспортное средство паркуется, пока водитель выполняет задачи, связанные с остановкой. Остановки обычно представляют собой точку доступа, например, погрузочную площадку или привязанное к дороге местоположение.
3. В процессе
Состояние задачи может быть ОТКРЫТО или ЗАКРЫТО. Однако после назначения задачи транспортному средству вы можете отслеживать ее ход выполнения через ее связь с транспортным средством и через то, где транспортное средство находится по отношению к остановке, на которой задача должна быть выполнена.
Как только транспортное средство отходит от остановки или начинает навигацию, статус остановки должен измениться на ENROUTE
. Таким образом, отслеживание отправлений потребителей может обновить получателя для задачи с количеством оставшихся остановок и предполагаемым временем прибытия. Это также поддерживает любую визуализацию в реальном времени для отслеживания отправлений потребителей или для отслеживания автопарка.
4. Прибытие и результат задания
Когда транспортное средство прибывает на остановку, статус остановки должен быть установлен на ARRIVED
. Как и в случае со статусом остановки ENROUTE
, это не влияет на состояние самой задачи, но поддерживает как уведомления потребителей, так и любые отчеты в реальном времени для отслеживания автопарка, используемые вашими операторами автопарка. Это также позволяет проводить последующую аналитику и отчетность по вашей работе, которую вы будете использовать для оптимизации доставки.
После того, как транспортное средство прибудет на остановку, ваша система может справиться с оставшейся частью пути, используя один из следующих подходов:
Закрывайте задачи по мере их выполнения .
Когда водитель отмечает задачу как выполненную, ваша система может удалить ее с остановки, но оставить остановку с другими назначенными ей задачами.
Снимите весь упор с транспортного средства .
Как только водитель отметит все задачи как выполненные и транспортное средство будет на пути к следующей остановке, вы можете удалить всю остановку из транспортного средства. Fleet Engine автоматически закрывает все задачи, связанные с удаленной остановкой.
Закрытие задачи не означает ее успешность или неудачу.
Закрытие задачи указывает только на то, что задача больше не считается выполняемой. Для задач в состоянии CLOSED
вы устанавливаете их результат как SUCCEEDED
или FAILED
. Это необходимо как для указания фактического результата для отслеживания отправки, так и для правильного выставления счетов. Fleet Engine взимает плату только за задачи по доставке со статусом SUCCEEDED.
После того, как вы установили результат задачи, вы не сможете его изменить.
При отметке результата задачи Fleet Engine автоматически заполняет местоположение результата задачи последним известным местоположением транспортного средства. Однако вы можете изменить время и местоположение результата задачи после того, как они были установлены, и Fleet Engine не будет перезаписывать эти поля.
5. Другие сценарии задач
Не все задачи, которые вы моделируете в Fleet Engine, вписываются в типичный поток путешествия. Например:
- Задачи по вывозу . Когда у вас есть задача по вывозу посылки , которую нужно вернуть на склад для последующей обработки, вам следует создать соответствующую задачу по доставке для этой посылки, указав в качестве планируемого места склад. В противном случае задачи по вывозу обычно следуют той же схеме, что и задачи по доставке.
- Переназначение задач . Вы не можете напрямую переназначить задачу другому транспортному средству. Вместо этого, чтобы переместить задачу с одного транспортного средства на другое, закройте исходную задачу , а затем заново создайте ее перед назначением новому транспортному средству. Если вы обновляете порядок задач для задачи, которая уже назначена другому транспортному средству, Fleet Engine выдает ошибку.
- Удаление задач . Как и в случае с транспортными средствами, Fleet Engine удаляет задачи, которые не были обновлены в течение семи дней. Если вы попытаетесь повторно использовать идентификатор задачи для той, которая была ранее закрыта, Fleet Engine вернет ошибку, если этот идентификатор использовался в течение последних семи дней. И наоборот, если вы хотите хранить данные задач дольше семи дней, вы должны реализовать эту возможность самостоятельно, например, с помощью запланированного задания для сброса 7-дневных часов.
Поделиться ходом выполнения задачи
В Fleet Engine вы можете отслеживать ход выполнения задач в режиме реального времени и делиться информацией о поездке водителя двумя основными способами:
- Потребительский опыт , позволяющий потребителям узнать статус своих заказов на доставку или запрошенных услуг.
- Мониторинг автопарка для операторов вашего автопарка, позволяющий отслеживать и анализировать состояние транспортных средств в автопарке.
Потребительский опыт
Чтобы поделиться ходом выполнения задачи, вы настраиваете потребительский опыт с помощью JavaScript Consumer SDK. С помощью SDK вы можете улучшить визуальный опыт веб-сайта или мобильного приложения, чтобы потребители могли отслеживать статус своей доставки, а также предполагаемое время прибытия и обновления местоположения транспортного средства доставки в реальном времени. См. Обзор запланированных задач Consumer SDK .
Consumer SDK содержит карту JavaScript и компоненты компонентов данных для подключения к Fleet Engine. Карта является заменой стандартного объекта google.maps.Map
. Ваш клиент должен аутентифицировать ваших конечных пользователей и использовать роль потребителя Delivery из вашего проекта Google Cloud для возврата только информации, специфичной для клиента. Fleet Engine фильтрует и редактирует всю остальную информацию в ответах. Например, во время задачи недоступности никакая информация о местоположении не передается конечному пользователю.
В Fleet Engine вы можете включить следующие настройки, чтобы поделиться ходом выполнения задачи с потребителем:
- Задачи используют свойство
TaskTrackingViewConfig
. Необязательно. - Задачи используют идентификатор отслеживания, который необходим библиотеке для идентификации соответствующих задач для потребителя.
Отслеживание автопарка
Библиотека отслеживания автопарка JavaScript позволяет визуализировать местоположение транспортных средств в их автопарках практически в реальном времени. Библиотека использует API Fleet Engine для визуализации транспортных средств доставки, а также назначенных им задач. Как и потребительский SDK JavaScript, она содержит компонент карты JavaScript, который является заменой стандартной сущности google.maps.Map
с компонентами данных, которые вы используете для подключения к Fleet Engine.
Эта библиотека показывает видимость транспортных средств доставки, как только они создаются в Fleet Engine. Для этой реализации вы используете роль IAM облака Fleet Engine Service Super User и предоставляете заявку Java Web Token для доступа к транспортным средствам доставки и связанным с ними задачам.
Сценарии запланированных задач
В этом разделе показаны различные сценарии задач, которые обобщают информацию, представленную в этом месте руководства. Это призвано помочь вам понять различные способы моделирования транспортных операций в Fleet Engine в зависимости от вашего бизнеса.
Доставка с отслеживанием
Этот сценарий доставки показывает запланированную задачу остановки, назначенную депо как при отправлении из депо в начале поездки, так и при прибытии в депо в конце поездки. Он также показывает две задачи доставки для остановки, одна из которых не была выполнена. Используйте это назначение для включения отслеживания от и до депо, а также как способ моделирования времени начала и остановки в течение дня. Счета не выставляются при запланированных задачах остановки.
Самовывоз с доставкой на склад
Этот сценарий показывает, как моделировать самовывоз с его требуемой соответствующей задачей доставки. Вы устанавливаете возврат на склад как доставку для выставления счетов.

Транспортное средство-фидер
Этот сценарий показывает две доставки с запланированной остановкой посередине для транспортного средства-фидера, где цель состоит в том, чтобы транспортное средство-доставка могло вернуться на склад с несколькими посылками для отправки. Вы также можете смоделировать транспортное средство-фидер с запланированной остановкой.

Сроки выполнения задачи
Моделирование времени выполнения задач помогает эффективно планировать маршрут, ETA и управлять ожиданиями доставки. Fleet Engine предлагает две ключевые функции для моделирования и прогнозирования времени выполнения задач, как описано в этом разделе.
Продолжительность задачи
Длительность задачи задается с помощью поля task_duration
, обязательного поля, которое моделирует предполагаемое время, которое водитель тратит на выполнение задач на остановке или на перерыв. Для остановок это охватывает все необходимые действия после прибытия на остановку, такие как разгрузка посылок и взаимодействие с получателем. Чем конкретнее эта информация, тем лучше Fleet Engine может предоставить реалистичное время прибытия и расчетное время прибытия для последующих остановок в пути. Подробности поля см. в разделе Длительность в документации по буферам протоколов .
Целевое временное окно
Target time определяет предлагаемый временной диапазон для задачи, обычно используемый для общения с клиентами или для целей внутреннего планирования. Вы устанавливаете это с помощью поля target_time_window
, которое состоит из времени начала и времени окончания. Это не влияет напрямую на расчеты маршрута, но может использоваться в таких ситуациях, как оповещение потребителя о временном окне для доставки посылки или о том, когда ожидать прибытия запланированного работника службы.
Атрибуты задачи
Атрибуты задач в Fleet Engine предоставляют удобный способ фильтрации задач на основе определенных характеристик при использовании запроса ListTasks
. Вы также можете использовать пользовательские атрибуты задач для аналитики с Cloud Logging, а также для передачи информации потребителям или для отслеживания автопарка. Цель аналогична той, что и для атрибутов транспортных средств: используйте это для создания более сфокусированной перспективы ваших операций по доставке.
Ограничения и запреты
- Создание пользовательских атрибутов : Fleet Engine ограничивает количество пользовательских атрибутов, которые вы можете определить для одной задачи. Обратитесь к своему торговому представителю, чтобы запросить увеличение этих лимитов.
- Возможности фильтрации : предлагая гибкость фильтрации, атрибуты задач не заменяют основные поля данных задач. Используйте их для дополнительной фильтрации в зависимости от ваших конкретных потребностей.
- Каждый атрибут должен иметь уникальный ключ .
- Не включайте в значение атрибута персональные данные или другую конфиденциальную информацию, так как они могут быть видны пользователю.
- Проверка данных : убедитесь, что типы данных и форматы ваших пользовательских атрибутов соответствуют требованиям Fleet Engine.