Tareas programadas

En este documento, se describe el servicio de tareas programadas en Fleet Engine. Se supone que Leyó ¿Qué es Fleet Engine? y conoce la flota específica. la capacidad de servicio de Compute Engine que necesites.

Cuando leas esta documentación, ten en cuenta lo siguiente:

  • Creas tareas y las asocias con una parada de vehículo como una forma de la asociación del mundo real entre la tarea y la ubicación donde la se espera que el vehículo se detenga para que el conductor pueda completar la tarea. Lee Introducción a los vehículos para mejorar comprender cómo funcionan los vehículos en Fleet Engine.
  • Flota Engine para tareas programadas utiliza los siguientes recursos: un Task. y un DeliveryVehicle. Fleet Engine proporciona un servicio de gRPC y REST interfaces:
    • Task: gRPC y REST
    • DeliveryVehicle: gRPC y REST
    • Para simplificar, en este manual se usan ejemplos de gRPC.

¿Qué es una tarea programada?

Una tarea programada en Fleet Engine representa una acción individual que se debe completadas por un conductor que usa un vehículo en el contexto más amplio de una la operación de transporte. Define el objetivo específico del controlador. Por ejemplo:

  • entregar un artículo a una residencia
  • retirar un paquete para devolverlo al depósito de envíos
  • hacer una parada en una ubicación para brindar un servicio en las instalaciones a un cliente
  • hacer una detención programada para alimentar el vehículo

Elementos de la tarea

En la siguiente imagen, se ilustran estos elementos de tareas en una programación estándar recorrido de un vehículo.

Campos de tareas básicas

Campo Descripción
Tipo Define el tipo de acción asociado con la tarea.
ID de la tarea Es una cadena que identifica de manera inequívoca la tarea dentro del sistema.
Ubicación planificada Especifica la ubicación prevista donde se debe realizar la tarea. Esta ubicación no siempre es la misma que la ubicación planificada para el parada del vehículo.
Estado Indica si la tarea está abierta o cerrada.
Resultado de la tarea Indica si la tarea se realizó correctamente o no.

Modelo de datos para tareas

En los siguientes diagramas, se ilustra el modelo de datos del recurso Task junto con el diagrama de su recurso DeliveryVehicle asociado. Puedes revisa ambos diagramas para explorar las relaciones entre los dos recursos ten en cuenta lo siguiente:

  • Ubicación planificada: Las tareas y las paradas del vehículo tienen ubicaciones planificadas. diferentes entre sí.
    • En el caso de las tareas, una ubicación planificada indica el lugar en el que la acción del conductor de seguridad en la nube. Por ejemplo, 15 entregas de paquetes a una empresa grande complejo requieren entrega a diferentes ubicaciones de sala de correo dentro ese mismo complejo.
    • En el caso de las paradas del vehículo, la ubicación planificada indica la parada en la vehículo mientras el conductor completa las tareas. Por ejemplo, un el vehículo se detiene en la entrada de un complejo de departamentos entrega los paquetes de forma manual a salas de correo separadas dentro del complejo.
  • Estado: Tanto las tareas como las paradas vehiculares tienen un campo state distinto del entre sí.
    • El estado de la parada del vehículo refleja el progreso del vehículo en relación con la parada, que se utiliza para hacer un seguimiento de la flota.
    • El estado de la tarea indica si esta se encuentra activa o no. Esta afecta otras operaciones a realizar en tareas, como establecer su o asignarlo a un vehículo.
  • Resultado de la tarea: El resultado de la tarea es un campo importante en el modelo de datos. porque se usa para indicar el éxito o el fracaso de una tarea, de forma independiente del estado de la tarea.

  • IDs:

    • Cuando asignas una tarea a un vehículo, el motor de la flota completa la deliveryVehicleId. Este campo de solo lectura indica el vehículo que a la que se asigna la tarea.
    • Los IDs de tarea son identificadores únicos en todas las tareas del sistema.
    • Los IDs de seguimiento identifican una tarea con fines de seguimiento de envíos.

Modelo de datos de Tasks

Modelo de datos del vehículo

IDs de tareas

Al igual que los IDs de vehículos en Fleet Engine, cada tarea debe contener un ID para distinguirlos de otras tareas dentro del sistema. Tú consultas y administras todas las tareas de tu flujo de trabajo por su ID. Puedes crear estos IDs usando el CreateTaskRequest y proporciona una cadena de ID que cumpla con las requisitos que se describen en esta sección.

Esta cadena comprende parte del nombre del recurso de la tarea, una solo de salida en el objeto Task. Esto es análogo a cómo Fleet Engine construye recursos de nombres de vehículos. Consulta la sección Nombres de recursos en Introducción a Fleet Engine.

Requisitos de ID de tarea
Propiedad Descripción
Unicidad Cada ID de tarea debe ser único en tu implementación de Fleet Engine para evitar confusiones y garantizar una identificación adecuada.
Formato
  • No hay información de identificación personal (PII) ni datos de texto claros.
  • Strings Unicode válidas.
  • Admite hasta 64 caracteres.
  • Excluye los siguientes caracteres: / : \ ? #
  • Normalizado de acuerdo con Formulario C de normalización de Unicode.
Ejemplos de ID de tarea
Ejemplos buenos de ID de tarea
  • 566c33d9-2a31-4b6a-9cd4-80ba1a0c643b
  • e4708eabcfa39bf2767c9546c9273f747b4626e8cc44e9630d50f6d129013d38
  • NTA1YTliYWNkYmViMTI0ZmMzMWFmOWY2NzNkM2Jk
IDs de tareas no permitidos
  • 8/31/2019-20:48-46.70746,-130.10807,-85.17909,61.33680
  • JohnDoe-577b484da26f-Cupertino-SantaCruz
  • 4R0oXLToF"112 Summer Dr. East Hartford, CT06118"577b484da26f8a

Tipos de tareas

Fleet Engine admite varios tipos de tareas para representar diferentes acciones dentro de un la operación de transporte. Se describen aquí junto con su visibilidad y detalles de facturación.

Tipo de tarea Descripción Visibilidad del seguimiento de envíos Facturado
Tarea de publicación Se usa para dejar artículos o completar una tarea para un cliente. Los consumidores pueden ver esto y hacerles un seguimiento.
Tarea de retiro Se usa para indicar que un cliente debe retirar los productos. Debes tienen una tarea de entrega correspondiente para cualquier tarea de retiro. Los consumidores pueden ver esto y hacerles un seguimiento. No
Tarea de falta de disponibilidad Identifica que el vehículo no está disponible para el servicio, por ejemplo, cuando el conductor se toma un descanso o recarga el combustible del vehículo. No es visible para los consumidores. No
Tarea de detención programada Una tarea de publicación fallida que requiere una parada en una ubicación específica. Usa las tareas de paradas programadas para las paradas de recolección programadas a diario en una ubicación específica, independientemente de otras entregas o retiros en la misma ubicación. También puedes crear tareas de paradas programadas para las recolecciones desde buzones de entrega o hasta trasbordos o paradas de vehículos alimentadores y alimentadores en centros de servicio y puntos de servicio. Los consumidores no pueden realizar un seguimiento de esta tarea específica, pero pueden verla como parte del seguimiento de otras tareas. No

Ciclo de vida de tareas y recorridos

En esta sección, se proporcionan detalles sobre el ciclo de vida de las tareas de entrega en la flota Google Kubernetes Engine. El ciclo de vida de la tarea está conectado con el viaje del vehículo porque el vehículo debe dirigirse a una parada para que el conductor complete una tarea en su ubicación prevista.

1. Creación de tareas

Cuando creas una tarea por primera vez en Fleet Engine, estableces una variedad de campos para la tarea independientemente de asociarlos con una parada.

Propiedades de la tarea
Propiedad Descripción
Estado Configurar como ABIERTO
ID Establece la tarea y el ID de seguimiento si usas el seguimiento de envíos para tus consumidores.
Tiempos La duración planificada de la tarea y su margen de tiempo objetivo. Consulta Consulta la temporización de tareas para obtener más detalles.
Ubicación planificada Establezca la coordenada geográfica precisa en la que se realizará la tarea. el proyecto se completó.

2. Asignación de tareas

Cuando asignas una tarea a un vehículo, lo haces junto con un vehículo una parada. Las paradas son coordenadas de latitud y longitud que indican la ubicación donde el vehículo se estaciona mientras el conductor completa las tareas asociadas con la parada. Las paradas suelen ser un punto de acceso, como una estación de carga, o una ruta abrupta ubicación.

3. En curso

El estado de una tarea puede ser OPEN o CLOSED. Sin embargo, una vez que una tarea se asigna a un vehículo, puedes hacer un seguimiento de su progreso mediante su asociación y dónde se encuentra el vehículo en relación con la parada en la que se realizará la tarea el proyecto se completó.

Una vez que el vehículo sale de una parada o comienza la navegación, el estado del parada debe cambiar a ENROUTE. De esta manera, el seguimiento de envíos del consumidor puede actualizar el destinatario de una tarea con la cantidad de paradas restantes y estimadas hora de llegada. Esto también admite cualquier visualización en tiempo real para que el de envíos o de flotas.

4. Llegada y resultado de la tarea

Cuando el vehículo llega a una parada, el estado de la parada debe establecerse en ARRIVED Al igual que con un estado de parada de ENROUTE, esto no afecta el estado de la tarea en sí, pero admite tanto notificaciones para consumidores como cualquier de seguimiento de flotas que usan los operadores de tu flota. También permite estadísticas y los informes sobre tu operación que puedes usar para la entrega optimizaciones.

Una vez que el vehículo se detiene, el sistema puede encargarse del resto de la tarea con uno de los siguientes enfoques:

  • Cierra las tareas a medida que se hayan completado.

    Cuando el conductor marque la tarea como completada, tu sistema podrá quitarla de la parada, pero deja la parada con otras tareas asignadas.

  • Quita toda la parada del vehículo.

    Una vez que el conductor marca todas las tareas como completadas y el vehículo está en camino hacia el siguiente parada, puedes quitar toda la parada del vehículo. Fleet Engine cierra automáticamente todas las tareas asociadas con una parada eliminada.

Cerrar una tarea no indica éxito o fracaso

Cerrar una tarea solo indica que esta ya no se considera en curso. Para las tareas con estado CLOSED, debes establecer su resultado como SUCCEEDED o FAILED Esto es necesario para indicar el resultado real del envío y una facturación adecuada. Fleet Engine solo cobra las tareas de entrega con un estado de SUCCEEDED.

Una vez que definas el resultado de una tarea, no podrás cambiarlo

Cuando marcas el resultado de una tarea, Fleet Engine la completa automáticamente. la ubicación de salida con la última ubicación conocida del vehículo. Sin embargo, puedes modificar el tiempo y la ubicación del resultado de la tarea después de que se hayan establecido y Fleet Engine no anulará estos campos.

5. Otras situaciones de tareas

No todas las tareas que modelas en Fleet Engine se ajustan al flujo de recorrido típico. Por ejemplo:

  • Retiro de tareas Cuando tienes una tarea de pickup para que se devuelva un paquete al depósito para su procesamiento posterior, debes crear una delivery correspondiente a ese paquete, con la ubicación planificada configurada en el depósito. De lo contrario, las tareas de retiro suelen seguir el mismo flujo que las tareas de entrega.
  • Reasignación de tareas. No puedes reasignar directamente una tarea a una vehículo. En cambio, para mover una tarea de un vehículo a otro, cierra el tarea original y, luego, vuelve a crearla antes de asignarle el nuevo vehículo. Si actualizas el orden de la tarea para una que ya está asignada a un vehículo diferente, Fleet Engine produce un error.
  • Cómo borrar tareas. Al igual que con los vehículos, Fleet Engine borra las tareas que no han se actualizaron después de siete días. Si intentas reutilizar un ID de tarea que ya tiene se cerró anteriormente, Fleet Engine muestra un error si se usó ese ID en los últimos siete días. Por el contrario, si quieres conservar los datos de las tareas por más tiempo de siete días, debes implementar esa capacidad por tu cuenta, por ejemplo, a través de un trabajo programado para restablecer el reloj de 7 días.

Cómo compartir el recorrido de la tarea

Con la función para compartir el recorrido de las tareas en Fleet Engine, puedes supervisar el progreso de las tareas en en tiempo real y compartir el recorrido del conductor de dos formas clave:

  • Compartir el recorrido del consumidor para que los consumidores conozcan el estado de su pedidos de envío o un pedido de servicio solicitado.
  • Seguimiento de flotas para que los operadores de tu flota sigan y analicen su estado de vehículos de la flota.

Compartir el recorrido del consumidor

Para integrar el uso compartido del recorrido del consumidor en sus operaciones, configure el recorrido con el SDK de consumidor de JavaScript. Con el SDK, puedes mejorar un experiencia visual en la Web o en aplicaciones para dispositivos móviles para que los consumidores puedan supervisar el estado de sus junto con horas estimadas de llegada y actualizaciones de la ubicación en tiempo real para el vehículo de entrega. Consulta el artículo Descripción general del recorrido compartido del consumidor para tareas programadas.

El SDK para compartir el recorrido del consumidor contiene un mapa de JavaScript y componentes de datos para conectarse con Fleet Engine. El mapa es un reemplazo directo de un objeto google.maps.Map estándar. Tu cliente debe autenticar tu extremo usuarios y usar el rol de consumidor de Entrega de tu proyecto de Google Cloud para devolver solo información específica del cliente. Fleet Engine filtra y oculta todo otra información en las respuestas. Por ejemplo, durante una tarea de falta de disponibilidad, no se comparte información de ubicación con un usuario final.

En Fleet Engine, habilitas los siguientes parámetros de configuración para el recorrido del consumidor uso compartido:

  • Las tareas usan la propiedad TaskTrackingViewConfig. Opcional.
  • Las tareas usan un ID de seguimiento, que la biblioteca necesita para identificar para un consumidor.

Seguimiento de flota

La biblioteca de seguimiento de flotas de JavaScript te permite visualizar las ubicaciones de vehículos de sus flotas casi en tiempo real. La biblioteca usa el La API de Flet Engine permite visualizar los vehículos de entrega, así como sus tareas asignadas. Al igual que el SDK para consumidores de JavaScript, contiene un código componente de mapa que es un reemplazo directo de un google.maps.Map estándar con componentes de datos que usas para conectarte con Fleet Engine.

Esta biblioteca muestra la visibilidad de los vehículos de reparto en cuanto están creada en Fleet Engine. Para esta implementación, usarás Fleet Engine el rol de Cloud IAM de superusuario del servicio y proporcionas una reclamación de token web Java para acceso a los vehículos de entrega y a sus tareas asociadas.

Situaciones de tareas programadas

En esta sección, se muestran una variedad de situaciones de tareas que resumen la información proporcionadas en este punto de la guía. Su objetivo es ayudarte a comprender varias formas de modelar tus operaciones de transporte en Fleet Engine, según su empresa.

Entrega con seguimiento

En esta situación de entrega, se muestra una tarea de parada programada. asignados al depósito tanto al momento de la salida del depósito al comienzo del el viaje y la llegada al depósito al final del viaje. También muestra dos tareas de entrega para una parada, una de las cuales falló. Usar esta para habilitar el seguimiento desde y hacia el depósito y como una forma de modelar las horas de inicio y finalización del día. Sin facturación sucede con las tareas de detención programadas.

Retiro con entrega en depósito

En esta situación, se muestra cómo modelar un pickup con sus requería la tarea de entrega correspondiente. Estableces el retorno al depósito como un delivery para fines de facturación.

Vehículo de alimentación

Este escenario muestra dos entregas con una parada programada en el medio para un vehículo alimentador, cuyo propósito es permitir que el vehículo de reparto volver al depósito con varios paquetes por enviar. Tú también podría modelar el vehículo alimentador con una parada programada.

Tiempo de tareas

Modelar los tiempos de las tareas ayuda con la planificación eficaz de rutas, la hora de llegada estimada y la administración las expectativas de entrega. Fleet Engine ofrece dos funcionalidades clave para modelar y anticipar el tiempo de las tareas, como se describe en esta sección.

Duración de la tarea

La duración de la tarea se establece con el campo task_duration, un campo obligatorio que Modela el tiempo anticipado que el conductor dedicará a completar tareas en una parada. o para tomar un descanso. Para las paradas, esto abarca todas las actividades necesarias tras llegar a una parada, como descargar paquetes e interactuar con la destinatario. Cuanto más específica sea esta información, mejor podrá proporcionar horas de llegada y ETA realistas para las siguientes paradas del viaje. Para obtener detalles sobre el campo, consulta Duración en la Documentación de búferes de protocolo.

Período objetivo

El tiempo objetivo define un intervalo de tiempo propuesto para una tarea, generalmente utilizado para para comunicarse con los clientes o para fines de planificación interna. Configura esto con el campo target_time_window, que consta de una hora de inicio y una de finalización Esto no influye directamente en ningún cálculo de ruta, pero podría usarse para p. ej., alertar a un consumidor sobre el plazo para recibir un paquete la entrega o cuándo se espera que llegue un service worker programado.

Atributos de la tarea

Los atributos de tareas de Fleet Engine brindan una forma conveniente de filtrar tareas según según características específicas cuando se usa la solicitud ListTasks. También puedes usar atributos de tareas personalizados para el análisis con Cloud Logging, junto con comunicar información en el recorrido del consumidor o en el seguimiento de la flota. El es similar a la de los atributos de vehículos: use esta opción para crear un específica de tus operaciones de entrega.

Limitaciones y restricciones

  • Creación de atributos personalizados: Fleet Engine limita la cantidad de atributos que puedes definir por tarea. Comunícate con tu representante de ventas para solicitar un aumento de esos límites.
  • Capacidades de filtrado: Si bien ofrece flexibilidad para filtrar, las tareas no reemplazan los campos de datos principales de las tareas. Úsalas para un filtrado adicional según tus necesidades específicas.
  • Cada atributo debe tener una clave única.
  • No incluyas información de identificación personal ni otro tipo de información sensible en el valor del atributo, ya que podría ser visible para el usuario.
  • Validación de datos: Asegúrate de que los tipos de datos y los formatos de tus productos son compatibles con los requisitos de Fleet Engine.

¿Qué sigue?