Tarefas agendadas

Neste documento, descrevemos o serviço de tarefas agendadas no Fleet Engine. Ele pressupõe você leu O que é o Fleet Engine? e está ciente das frotas específicas do Compute Engine de que você precisa.

Ao ler esta documentação, tenha em mente o seguinte:

  • Você cria tarefas e as associa a uma parada de veículo como uma forma de modelar a associação real entre a tarefa e o local onde o o veículo deve parar para que o motorista possa concluir a tarefa. Leia Introdução aos veículos para entender como os veículos funcionam no Fleet Engine.
  • O Fleet Engine para tarefas programadas usa os seguintes recursos: um Task e um DeliveryVehicle. O Fleet Engine oferece um serviço gRPC e um REST - interface:
    • Task: gRPC e REST
    • DeliveryVehicle: gRPC e REST
    • Para simplificar, este manual usa exemplos de gRPC.

O que é uma tarefa agendada?

Uma tarefa agendada no Fleet Engine representa uma ação individual a ser concluído por um motorista usando um veículo dentro do contexto mais amplo de uma na operação de transporte. Define o objetivo específico do motorista. Exemplo:

  • entregar um produto em uma residência
  • para retirar um pacote e devolver ao depósito de remessas
  • parar em um local para prestar serviço no local a um cliente
  • fazer uma parada programada para abastecer o veículo;

Elementos da tarefa

A imagem a seguir ilustra esses elementos de tarefa em uma tabela padrão em um veículo.

Campos de tarefas básicas

Campo Descrição
Tipo Define o tipo de ação associado à tarefa.
ID da tarefa String que identifica exclusivamente a tarefa no sistema.
Local planejado Especifica o local pretendido onde a tarefa deve ser executada. Este local nem sempre é o mesmo planejado para o parada de veículo.
Estado Indica se a tarefa está aberta ou fechada.
Resultado da tarefa Indica se a tarefa foi bem-sucedida ou falhou.

Modelo de dados para tarefas

Os diagramas a seguir ilustram o modelo de dados do recurso Task ao lado do diagrama para o recurso DeliveryVehicle associado. Você pode analisar os dois diagramas para explorar as relações entre os dois recursos tenha em mente o seguinte:

  • Local planejado: as tarefas e paradas de veículos têm locais planejados. diferentes uns dos outros.
    • Para tarefas, um local planejado indica onde o motorista solicitou. deve ocorrer. Por exemplo, 15 entregas de pacotes em uma loja complexo exigem a entrega para diferentes salas de correio dentro mesmo complexo.
    • Para paradas de veículos, o local planejado indica a parada da veículo enquanto o motorista conclui as tarefas. Por exemplo, o veículo para na entrada de um complexo de apartamentos, e o motorista entrega os pacotes manualmente em salas de correio separadas dentro do complexo.
  • Estado: as tarefas e as paradas de veículos têm um campo state, diferente de uns aos outros.
    • O estado de uma parada reflete o progresso do veículo em em relação à parada, usado para fins de rastreamento da frota.
    • O estado da tarefa indica se ela está ativa ou não. Isso impacta outras operações a serem realizadas nas tarefas, como definir seu resultado final ou atribuí-lo a um veículo.
  • Resultado da tarefa: o resultado da tarefa é um campo importante no modelo de dados. porque é usado para indicar o sucesso ou a falha de uma tarefa, independente do estado da tarefa.

  • Códigos:

    • Quando você atribui uma tarefa a um veículo, o motor da frota preenche o deliveryVehicleId. Este campo somente leitura indica o veículo a para o qual a tarefa é atribuída.
    • Os IDs de tarefas são identificadores exclusivos em todas as tarefas no seu sistema.
    • Os IDs de rastreamento identificam uma tarefa com a finalidade de rastrear o frete.

Modelo de dados de tarefas

Modelo de dados do veículo

IDs de tarefas

Assim como os IDs de veículo no Fleet Engine, cada uma das tarefas precisa conter um ID para diferenciá-las de outras tarefas dentro do sistema. Você faz referência e gerencia todas as tarefas em seu fluxo de trabalho pelo ID. Você cria esses IDs usando o método CreateTaskRequest e fornecendo uma string de ID que esteja em conformidade com a requisitos descritos nesta seção.

Essa string compreende parte do nome do próprio recurso de tarefa, uma campo somente saída no objeto Task. Isso é análogo à forma como o Fleet Engine constrói recursos de nome de veículo. Consulte a seção Nomenclatura de recursos Introdução ao Fleet Engine.

Requisitos de ID de tarefas
Propriedade Descrição
Exclusividade Cada ID de tarefa precisa ser exclusivo na implementação do Fleet Engine para evitar confusão e garantir a identificação adequada.
Formato
  • Nenhuma informação de identificação pessoal (PII) ou dados de texto simples.
  • Strings Unicode válidas.
  • Máximo de 64 caracteres.
  • Exclua os seguintes caracteres: / : \ ? #
  • Normalizado de acordo com Formulário de normalização Unicode C.
Exemplos de IDs de tarefas
Bons exemplos de ID de tarefa
  • 566c33d9-2a31-4b6a-9cd4-80ba1a0c643b
  • e4708eabcfa39bf2767c9546c9273f747b4626e8cc44e9630d50f6d129013d38
  • NTA1YTliYWNkYmViMTI0ZmMzMWFmOWY2NzNkM2Jk
IDs de tarefas não permitidos
  • 8/31/2019-20:48-46.70746,-130.10807,-85.17909,61.33680
  • JohnDoe-577b484da26f-Cupertino-SantaCruz
  • 4R0oXLToF"112 Dr. East Hartford, CT06118"577b484da26f8a

Tipos de tarefa

O Fleet Engine oferece suporte a vários tipos de tarefas para representar diferentes ações em uma na operação de transporte. Eles estão descritos aqui junto com sua visibilidade e detalhes de faturamento.

Tipo de tarefa Descrição Visibilidade do rastreamento de envios Faturado
Tarefa de entrega Use para deixar itens ou concluir uma tarefa para um cliente. Os consumidores podem ver e rastrear isso. Sim
Tarefa de retirada Use para indicar a retirada de produtos de um cliente. Você deve têm tarefas de entrega correspondentes para qualquer tarefa de retirada. Os consumidores podem ver e rastrear isso. Não
Tarefa de indisponibilidade Identifica o veículo como indisponível para serviço, por exemplo, quando o motorista faz uma pausa ou reabastece o veículo. Não está visível para os consumidores. Não
Tarefa de parada programada Uma tarefa de não entrega que requer uma parada em um local específico. Use tarefas de parada programadas para paradas de coleta diárias programadas em um local específico, independentemente de outras entregas ou retiradas no mesmo local. Também é possível criar tarefas de paradas programadas para coletas de caixas de depósito ou para modelar transferências de veículos-alimentadores ou paradas em centros de serviço e pontos de serviço. Os consumidores não conseguem acompanhar essa tarefa específica, mas podem vê-la como parte do monitoramento de outras tarefas. Não

Ciclo de vida de tarefas e jornadas

Esta seção fornece detalhes sobre o ciclo de vida das tarefas de entrega na frota Engine. O ciclo de vida da tarefa está conectado à jornada do veículo porque veículo precisa se deslocar até uma parada para que o motorista possa concluir uma tarefa em seu local planejado.

1. Criação de tarefas

Ao criar uma tarefa no Fleet Engine, você define uma variedade de campos para a tarefa independentemente de associá-los a uma parada.

Propriedades da tarefa
Propriedade Descrição
Estado Definido como OPEN
Códigos Defina a tarefa e o ID de rastreamento se você usa o rastreamento de frete para seus consumidores.
Tempo A duração planejada da tarefa e a janela de tempo desejada. Consulte Tempo da tarefa para detalhes.
Local planejado Definir a coordenada geográfica exata no local da tarefa concluído.

2. Atribuição de tarefas

Ao atribuir uma tarefa a um veículo, você faz isso em conjunto com um veículo parada. As paradas são coordenadas de latitude/longitude que indicam o local o veículo estaciona enquanto o motorista conclui as tarefas associadas à parada. Normalmente, as paradas são um ponto de acesso, como uma doca de carregamento, ou um ponto de acesso o local.

3. Em andamento

O estado de uma tarefa é OPEN ou CLOSED. No entanto, quando uma tarefa é atribuída um veículo, você pode acompanhar seu progresso por meio da associação ao veículo e onde o veículo está em relação à parada onde a tarefa será realizada. concluído.

Depois que o veículo sai de uma parada ou inicia um trajeto, o status do parada mudará para ENROUTE. Dessa forma, o rastreamento de remessa do consumidor pode Atualizar o destinatário de uma tarefa com o número de paradas restantes e estimado no horário de chegada. Ele também é compatível com qualquer visualização em tempo real para rastreamento de envio ou de frota.

4. Chegada e resultado da tarefa

Quando o veículo chegar a uma parada, o status dela deve ser definido como ARRIVED: Assim como em um status de parada ENROUTE, isso não afeta o estado do a tarefa em si, mas oferece suporte a notificações de cliente e qualquer Relatórios de rastreamento de frotas usados pelos seus operadores de frota. Ele também permite análises e relatórios sobre a operação que você usaria para entregas. e otimizações.

Quando o veículo chegar a uma parada, o sistema poderá processar o restante da tarefa usando uma das abordagens a seguir:

  • Feche as tarefas à medida que elas forem concluídas.

    Quando o driver marcar a tarefa como concluída, o sistema poderá removê-la do parar, mas deixá-la com outras tarefas atribuídas a ela.

  • Remova a parada inteira do veículo.

    Depois que o motorista marca todas as tarefas como concluídas e o veículo está a caminho do próxima parada, você poderá remover toda a parada do veículo. Motor de frota fecha automaticamente todas as tarefas associadas a uma parada removida.

.

Encerrar uma tarefa não indica sucesso ou falha

O fechamento de uma tarefa apenas indica que ela não é mais considerada em andamento. Para tarefas no estado CLOSED, você define o resultado como SUCCEEDED ou FAILED Isso é necessário para indicar o resultado real do envio. controle e para o faturamento adequado. O Fleet Engine cobra apenas as tarefas de entrega estado de SUCCEEDED.

Depois de definir o resultado de uma tarefa, não é possível mudá-lo

Ao marcar o resultado de uma tarefa, o Fleet Engine a preenche automaticamente com a última localização conhecida do veículo. No entanto, é possível modificar o horário e o local do resultado da tarefa depois de terem sido definidos e O Fleet Engine não vai substituir esses campos.

5. Outros cenários com tarefas

Nem todas as tarefas modeladas no Fleet Engine se encaixam em um fluxo de jornada típico. Por exemplo:

  • Tarefas de retirada. Quando você tem uma tarefa pickup para um pacote ser retornado. ao depósito para processamento posterior, crie um delivery desse pacote, com o local planejado definido como o depósito. Caso contrário, as tarefas de retirada geralmente seguem o mesmo fluxo das tarefas de entrega.
  • Reatribuição de tarefa. Não é possível reatribuir uma tarefa diretamente a outra veículo Em vez disso, para mover uma tarefa de um veículo para outro, feche o tarefa original e recriá-la antes de atribuir o novo veículo a ela. Se você atualiza a ordem de uma tarefa que já está atribuída a um um veículo diferente, o Fleet Engine vai gerar um erro.
  • Como excluir tarefas. Assim como nos veículos, o Fleet Engine exclui as tarefas atualizado após sete dias. Se você tentar reutilizar um ID de tarefa já tiver sido fechado, o Fleet Engine retornará um erro se esse ID tiver sido usado. nos últimos sete dias. Por outro lado, se você quiser reter dados de tarefas por mais tempo, de sete dias, você terá que implementar essa capacidade sozinho, como por meio um trabalho agendado para zerar o relógio de sete dias.

Compartilhamento da jornada de tarefas

Com o compartilhamento da jornada das tarefas no Fleet Engine, é possível monitorar o progresso delas em tempo real e compartilham a jornada do motorista de duas maneiras principais:

  • Compartilhamento da jornada do consumidor para que os consumidores saibam o status do pedidos de envio ou pedidos de serviço solicitados.
  • Rastreamento de frota: usados pelos operadores para acompanhar e analisar o status. dos veículos da frota.

Compartilhamento da jornada do consumidor

Para integrar o compartilhamento da jornada do consumidor à sua operação, configure a jornada usando o SDK de consumidor JavaScript. Com o SDK, você pode aprimorar um experiência visual na Web ou no aplicativo móvel para que os consumidores possam monitorar o status de suas entrega, com horários previstos de chegada e atualizações de localização em tempo real para o veículo de entrega. Consulte Visão geral do compartilhamento da jornada do consumidor para tarefas agendadas.

O SDK de compartilhamento da jornada do consumidor contém um mapa JavaScript e componentes de dados para se conectar ao Fleet Engine. O mapa é uma substituição simples objeto google.maps.Map padrão. O cliente deve autenticar seu servidor usuários e usar o papel de consumidor de Entrega do seu projeto do Google Cloud para retornam somente informações específicas do cliente. O Fleet Engine filtra e edita todos outras informações nas respostas. Por exemplo, durante uma tarefa de indisponibilidade, nenhuma informação de localização é compartilhada com um usuário final.

No Fleet Engine, você ativa as configurações a seguir para a jornada do consumidor compartilhamento:

  • As tarefas usam a propriedade TaskTrackingViewConfig. Opcional.
  • As tarefas usam um ID de acompanhamento, que a biblioteca precisa identificar tarefas de um consumidor.
.

Fleet Tracking

A biblioteca JavaScript Fleet Tracking permite que você visualize os locais dos veículos nas frotas quase em tempo real. A biblioteca usa o API Fleet Engine para fornecer a visualização de veículos de entrega, bem como às tarefas atribuídas a eles. Assim como o SDK JavaScript de consumidor, ele contém um componente de mapa que é uma substituição simples para um google.maps.Map padrão entidade com componentes de dados usados para se conectar ao Fleet Engine.

Esta biblioteca mostra a visibilidade dos veículos de entrega assim que eles são criada no Fleet Engine. Para esta implementação, use o Fleet Engine Papel de superusuário do Cloud IAM e você fornece a declaração de token da Web do Java para acesso aos veículos de entrega e às tarefas associadas.

Cenários de tarefas agendadas

Esta seção mostra uma variedade de cenários de tarefas que resumem as informações fornecidos neste ponto no guia. Ele foi criado para ajudar você a entender diversas maneiras de modelar as operações de transporte no Fleet Engine, dependendo do seu negócio.

Entrega com rastreamento

Este cenário de entrega mostra uma tarefa de parada programada atribuídos ao depósito na partida, no início a jornada e a chegada ao depósito no final da jornada. Ela também mostra duas tarefas de entrega para uma parada, e uma delas falhou. Usar para permitir o rastreamento de e para o depósito, além de como uma maneira de os horários de início e término do dia. Sem faturamento acontece com as tarefas de interrupção programadas.

Retirada com entrega em depósito

Este cenário mostra como modelar um pickup com os e exigia a tarefa de entrega correspondente. Você define o retorno para o depósito como um exibição para fins de cobrança.

Veículo alimentador

Este cenário mostra duas entregas com uma parada programada no meio para um veículo alimentador, em que o objetivo é permitir que o veículo de entrega voltar ao depósito com vários pacotes a serem enviados. Você também poderia modelar o veículo alimentador com uma parada programada.

Tempo da tarefa

A estimativa dos tempos das tarefas ajuda a planejar rotas, HECs e gerenciar trajetos com eficiência as expectativas de entrega. O Fleet Engine oferece duas funcionalidades principais para modelar e antecipar o tempo da tarefa, como descrito nesta seção.

Duração da tarefa

A duração da tarefa é definida com o campo task_duration, um campo obrigatório que modela o tempo previsto que o motorista passa concluindo as tarefas em uma parada. ou para fazer uma pausa. No caso das paradas, ela inclui todas as atividades necessárias após chegar a uma parada, como descarregar pacotes e interagir com o destinatário. Quanto mais específicas forem essas informações, melhor o Fleet Engine poderá fornecer horários de chegada e HECs realistas para as paradas subsequentes da viagem. Para ver mais detalhes sobre o campo, consulte Duração na Documentação dos buffers de protocolo.

Janela de tempo desejada

O tempo-alvo define um intervalo de tempo proposto para uma tarefa, normalmente usado para comunicar-se com os clientes ou para fins de planejamento interno. Você define isso com o campo target_time_window, que consiste em um horário de início e um de término. Isso não influencia diretamente nos cálculos de trajeto, mas pode ser usado para situação como alertar um consumidor sobre a janela de tempo de um pacote entrega ou quando esperar a chegada de um service worker programado.

Atributos da tarefa

Os atributos de tarefa no Fleet Engine oferecem uma maneira conveniente de filtrar tarefas com base sobre características específicas ao usar a solicitação ListTasks. Você também pode usar atributos de tarefas personalizados para análise com o Cloud Logging, além de a comunicação de informações no compartilhamento de jornadas do consumidor ou no rastreamento de frotas. O semelhante ao dos atributos do veículo: use-o para criar um focada em suas operações de entrega.

Limitações e restrições

  • Criação de atributo personalizado: o Fleet Engine limita o número de objetos atributos que podem ser definidos por tarefa. Entre em contato com seu representante de vendas para solicitar um aumento desses limites.
  • Recursos de filtragem: enquanto oferecem flexibilidade de filtragem, não substituem os campos de dados das tarefas principais. Use para filtros adicionais com base em suas necessidades específicas.
  • Cada atributo precisa ter uma chave exclusiva.
  • Não inclua informações de identificação pessoal ou outros dados sensíveis. informações no valor do atributo, porque elas podem ser visíveis ao usuário.
  • Validação de dados: verifique se os tipos e formatos de dados da sua são compatíveis com os requisitos do Fleet Engine.

A seguir