이 문서에서는 Fleet Engine의 예약된 작업 서비스를 설명합니다. 이 가이드에서는 Fleet Engine이란 무엇인가요?를 읽고 필요한 특정 Fleet Engine 서비스 기능을 알고 있다고 가정합니다.
이 문서를 읽을 때는 다음 사항에 유의하세요.
- 운전자가 작업을 완료할 수 있도록 작업과 차량이 정차할 것으로 예상되는 위치 간의 실제 연결을 모델링하는 방법으로 작업을 만들고 차량 정류장과 연결합니다. 차량 소개를 읽고 Fleet Engine에서 차량이 작동하는 방식을 자세히 알아보세요.
- 예약된 태스크의 Fleet 엔진은
Task
및DeliveryVehicle
과 같은 리소스를 사용합니다. Fleet Engine은 gRPC 서비스와 REST 인터페이스를 모두 제공합니다.
예약된 태스크란 무엇인가요?
Fleet Engine의 예약된 작업은 운송 작업의 더 광범위한 맥락에서 차량을 사용하는 운전자가 완료해야 하는 개별 작업을 나타냅니다. 운전자의 구체적인 목표를 정의합니다. 예를 들면 다음과 같습니다.
- 거주지에 상품을 배송
- 배송 물류창고로 반품할 상품을 수령하기 위해
- 고객에게 현장 서비스를 제공하기 위해 한 장소에 정차
- 차량에 연료를 주입하기 위해 예약된 정차를 하기 위해
할 일 요소
다음 이미지는 차량의 표준 예약된 여정에서 이러한 작업 요소를 보여줍니다.
기본 작업 필드
필드 | 설명 |
---|---|
유형 | 작업과 연결된 작업 유형을 정의합니다. |
태스크 ID | 시스템 내에서 작업을 고유하게 식별하는 문자열입니다. |
계획된 위치 | 태스크를 실행할 대상 위치를 지정합니다. 이 위치는 차량 정류장의 계획된 위치와 항상 일치하지는 않습니다. |
주 | 작업이 미결인지 완료되었는지 여부를 나타냅니다. |
작업 결과 | 태스크가 성공했는지 또는 실패했는지 여부를 나타냅니다. |
작업의 데이터 모델
다음 다이어그램은 Task
리소스의 데이터 모델과 연결된 DeliveryVehicle
리소스의 다이어그램을 보여줍니다. 두 다이어그램을 검토하여 두 리소스 간의 관계를 살펴볼 수 있습니다. 단, 다음 사항에 유의하세요.
- 계획된 위치: 차량 정류장과 작업 모두 서로 다른 계획된 위치가 있습니다.
- 작업의 경우 계획된 위치는 운전자 작업이 발생해야 하는 위치를 나타냅니다. 예를 들어 대규모 아파트 단지에 15개의 상품을 배송하려면 동일한 아파트 단지 내의 여러 우편함 위치에 배송해야 합니다.
- 차량 정류장의 경우 계획된 위치는 운전자가 작업을 완료하는 동안 차량이 정차하는 위치를 나타냅니다. 예를 들어 차량이 아파트 단지 입구에 정차하고 운전자가 단지 내의 별도의 우편함으로 직접 상품을 배송합니다.
- 상태: 작업과 차량 정류장 모두 서로 다른 상태 필드가 있습니다.
- 차량 정류장의 상태는 정류장과 관련하여 차량의 진행 상황을 반영하며 차량 추적 목적으로 사용됩니다.
- 작업의 상태는 작업이 활성 상태인지 여부를 나타냅니다. 이는 결과 설정 또는 차량에 할당과 같이 작업에서 실행할 다른 작업에 영향을 미칩니다.
작업 결과: 작업 결과는 데이터 모델에서 중요한 필드입니다. 작업 상태와 관계없이 작업의 성공 또는 실패를 나타내는 데 사용되기 때문입니다.
ID:
- 차량에 할당하면 Fleet 엔진이
deliveryVehicleId
필드를 채웁니다. 이 읽기 전용 필드는 작업이 할당된 차량을 나타냅니다. - 태스크 ID는 시스템의 모든 태스크에 대한 고유 식별자입니다.
- 추적 ID는 배송 추적을 목적으로 하는 작업을 식별합니다.
- 차량에 할당하면 Fleet 엔진이
Tasks 데이터 모델
차량 데이터 모델
태스크 ID
Fleet Engine의 차량 ID와 마찬가지로 태스크에는 시스템 내의 다른 태스크와 구별할 수 있는 ID가 각각 포함되어야 합니다. 워크플로의 모든 태스크를 ID로 참조하고 관리합니다. 이러한 ID는 CreateTaskRequest
서비스를 사용하고 이 섹션에 설명된 요구사항을 준수하는 ID 문자열을 제공하여 만듭니다.
그러면 이 문자열은 태스크 리소스 자체의 이름 일부, 즉 Task
객체의 출력 전용 필드를 구성합니다. 이는 Fleet Engine이 차량 이름 리소스를 구성하는 방식과 유사합니다. Fleet Engine 소개의 리소스 이름 지정 섹션을 참고하세요.
속성 | 설명 |
---|---|
고유성 | 혼동을 피하고 올바르게 식별할 수 있도록 각 태스크 ID는 Fleet Engine 구현 내에서 고유해야 합니다. |
형식 |
|
좋은 태스크 ID 예시 |
|
---|---|
허용되지 않는 태스크 ID |
|
할 일 유형
Fleet Engine은 운송 작업 내에서 다양한 작업을 나타내는 다양한 작업 유형을 지원합니다. 공개 상태 및 결제 세부정보와 함께 여기에 설명되어 있습니다.
작업 유형 | 설명 | 배송 추적 공개 상태 | 청구됨 |
---|---|---|---|
전송 작업 | 고객을 위해 상품을 배송하거나 작업을 완료하는 데 사용합니다. | 소비자는 이를 확인하고 추적할 수 있습니다. | 예 |
수령 작업 | 고객으로부터 상품을 수령했음을 나타내는 데 사용합니다. 모든 수령 작업에 상응하는 배송 작업이 있어야 합니다. | 소비자는 이를 확인하고 추적할 수 있습니다. | 아니요 |
이용 불가 작업 | 운전자가 휴식을 취하거나 차량에 연료를 주입하는 경우와 같이 차량을 서비스할 수 없는 것으로 식별합니다. | 소비자에게 표시되지 않습니다. | 아니요 |
예약된 중지 작업 | 특정 위치에서 정차해야 하는 비배송 작업입니다. 동일한 위치에서 다른 배송 또는 수령과 관계없이 특정 위치에서 매일 정기적으로 진행되는 수거 정류장에 정기 정류장 작업을 사용합니다. 또한 무인함에서 수거하기 위한 정기 중지 작업을 만들거나 서비스 센터 및 서비스 지점에서의 피더 차량 전송 또는 정지를 모델링할 수도 있습니다. | 소비자는 이 특정 작업을 추적할 수는 없지만 다른 작업을 추적하는 과정에서 볼 수 있습니다. | 아니요 |
태스크 및 여정 수명 주기
이 섹션에서는 Fleet Engine 내의 전송 작업 수명 주기에 관해 자세히 설명합니다. 운전자가 계획된 위치에서 작업을 완료하려면 차량이 정류장으로 이동해야 하므로 태스크 수명 주기는 차량 이동 경로와 연결됩니다.
1. 할 일 생성
Fleet Engine에서 태스크를 처음 만들 때는 정류장과 연결하는 것과 별개로 태스크의 다양한 필드를 설정합니다.
속성 | 설명 |
---|---|
주 | OPEN으로 설정 |
ID | 소비자에게 배송 추적을 사용하는 경우 작업 및 추적 ID를 설정합니다. |
시간 | 작업의 계획된 기간 및 타겟 시간 간격입니다. 자세한 내용은 작업 타이밍을 참고하세요. |
계획된 위치 | 작업이 완료될 정확한 지리적 좌표를 설정합니다. |
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은 7일 후에 업데이트되지 않은 태스크를 삭제합니다. 이전에 종료된 작업의 작업 ID를 재사용하려고 하면 해당 ID가 지난 7일 이내에 사용된 경우 Fleet Engine에서 오류를 반환합니다. 반대로 작업 데이터를 7일 이상 보관하려면 7일 카운터를 재설정하는 예약된 작업을 통해 이러한 기능을 직접 구현해야 합니다.
할 일 진행률 공유
Fleet Engine에서는 다음 두 가지 주요 방법으로 실시간으로 작업 진행 상황을 모니터링하고 운전자의 여정을 공유할 수 있습니다.
- 소비자가 배송 주문 또는 요청한 서비스 주문의 상태를 알 수 있는 소비자 경험
- 차량 관리자가 차량의 상태를 추적하고 분석할 수 있는 차량 추적
소비자 경험
작업 진행 상황을 공유하려면 JavaScript 소비자 SDK를 사용하여 소비자 환경을 설정합니다. 이 SDK를 사용하면 소비자가 배송 차량의 도착 예정 시간 및 실시간 위치 업데이트와 함께 배송 상태를 모니터링할 수 있도록 시각적 웹 또는 모바일 앱 환경을 개선할 수 있습니다. 소비자 SDK 예약된 작업 개요를 참고하세요.
Consumer SDK에는 Fleet Engine에 연결하는 JavaScript 지도 및 데이터 구성요소가 포함되어 있습니다. 맵은 표준 google.maps.Map
객체를 대체하는 삽입형입니다. 클라이언트는 최종 사용자를 인증하고 Google Cloud 프로젝트의 전송 소비자 역할을 사용하여 고객별 정보만 반환해야 합니다. Fleet Engine은 응답에서 다른 모든 정보를 필터링하고 삭제합니다. 예를 들어 사용 불가 작업이 진행되는 동안에는 최종 사용자와 위치 정보가 공유되지 않습니다.
Fleet Engine에서 다음 설정을 사용 설정하여 태스크 진행률을 소비자와 공유합니다.
- 태스크는
TaskTrackingViewConfig
속성을 사용합니다. 선택사항입니다. - 태스크는 라이브러리가 소비자의 관련 태스크를 식별하는 데 필요한 추적 ID를 사용합니다.
플릿 추적
JavaScript Fleet Tracking Library를 사용하면 차량의 위치를 거의 실시간으로 시각화할 수 있습니다. 이 라이브러리는 Fleet Engine API를 사용하여 배송 차량과 할당된 작업을 시각화합니다. JavaScript 소비자 SDK와 마찬가지로, Fleet Engine에 연결하는 데 사용하는 데이터 구성요소가 포함된 표준 google.maps.Map
항목을 대체하는 JavaScript 맵 구성요소가 포함되어 있습니다.
이 라이브러리는 Fleet Engine에서 배송 차량이 생성되는 즉시 배송 차량의 가시성을 보여줍니다. 이 구현에서는 Fleet Engine 서비스 수퍼유저 Cloud IAM 역할을 사용하고 배송 차량 및 관련 작업에 대한 액세스를 위한 Java 웹 토큰 소유권 주장을 제공합니다.
예약된 작업 시나리오
이 섹션에서는 가이드의 이 시점에서 제공된 정보를 요약하는 다양한 작업 시나리오를 보여줍니다. 이 섹션에서는 비즈니스에 따라 Fleet Engine에서 운송 작업을 모델링하는 다양한 방법을 이해하는 데 도움이 됩니다.
추적 기능이 있는 배송
이 배송 시나리오는 이동 시작 시 창고에서 출발할 때와 이동 종료 시 창고에 도착할 때 모두 창고에 할당된 예약된 정류장 작업을 보여줍니다. 또한 정류장에 대한 전송 작업 2개가 표시되며 그중 하나는 실패했습니다. 이 할당은 창고와 창고 간의 추적을 사용 설정하고 하루의 시작 시간과 종료 시간을 모델링하는 방법으로 사용합니다. 예약된 중지 작업에는 청구가 이루어지지 않습니다.
창고 배송 시 매장 수령
이 시나리오는 필요한 상응하는 배송 작업과 함께 수령을 모델링하는 방법을 보여줍니다. 결제 목적으로 창고 반품을 배송으로 설정합니다.

피더 차량
이 시나리오에서는 배송 차량이 배송할 여러 개의 상품을 가지고 창고로 돌아갈 수 있도록 피더 차량의 중간에 정차가 예약된 두 개의 배송을 보여줍니다. 정류장이 예약된 피더 차량을 모델링할 수도 있습니다.

태스크 타이밍
작업 시간을 모델링하면 효과적인 경로 계획, 도착 예정 시간, 배송 기대치 관리에 도움이 됩니다. Fleet Engine은 이 섹션에 설명된 대로 태스크 타이밍을 모델링하고 예상하는 두 가지 주요 기능을 제공합니다.
태스크 기간
작업 기간은 task_duration
필드로 설정됩니다. 이 필드는 정차 시 작업을 완료하거나 휴식을 취하는 데 예상되는 시간을 모델링하는 필수 필드입니다. 정류장의 경우 정류장에 도착한 후 필요한 모든 활동(예: 상품 하역, 수신자와의 상호작용)이 포함됩니다. 이 정보가 구체적일수록 Fleet Engine은 경로의 후속 정류장에 대한 실제 도착 시간과 예상 도착 시간을 더 정확하게 제공할 수 있습니다.
필드 세부정보는 프로토콜 버퍼 문서의 Duration을 참고하세요.
타겟 시간 창
타겟 시간은 작업의 제안된 기간을 정의하며 일반적으로 고객에게 알리거나 내부 계획 목적으로 사용됩니다. 시작 시간과 종료 시간으로 구성된 target_time_window
필드로 설정합니다.
이는 경로 계산에 직접적인 영향을 미치지 않지만 소비자에게 상품 배송 기간 또는 예약된 서비스 워커 도착 예상 시점에 관해 알리는 등의 상황에 사용할 수 있습니다.
할 일 속성
Fleet Engine의 작업 속성은 ListTasks
요청을 사용할 때 특정 특성에 따라 작업을 필터링하는 편리한 방법을 제공합니다. Cloud Logging을 사용한 분석에 맞춤 태스크 속성을 사용하고, 소비자에게 정보를 전달하거나 차량 추적에 사용할 수도 있습니다. 목적은 차량 속성과 유사합니다. 이를 사용하여 배송 작업에 더 초점을 맞춘 관점을 수립하세요.
제한사항
- 커스텀 속성 생성: Fleet Engine은 태스크당 정의할 수 있는 커스텀 속성의 수를 제한합니다. 영업 담당자에게 문의하여 한도 상향을 요청하세요.
- 필터링 기능: 태스크 속성은 필터링 유연성을 제공하지만 핵심 태스크 데이터 필드를 대체하지는 않습니다. 특정 요구사항에 따라 추가 필터링에 사용합니다.
- 각 속성에는 고유 키가 있어야 합니다.
- 사용자에게 표시될 수 있으므로 속성 값에 개인 식별 정보 또는 기타 민감한 정보를 포함하지 마세요.
- 데이터 유효성 검사: 맞춤 속성의 데이터 유형과 형식이 Fleet Engine의 요구사항과 호환되는지 확인합니다.