本文档介绍了如何删除任务。本文假定您已设置 Fleet Engine。请参阅设置车队引擎。
任务删除基础知识
在以下情况下,系统可能会使用 Fleet Engine 删除任务:
- 在测试车队引擎 API 时执行清理操作。
- 立即删除不再需要的任务。
如需删除任务,请使用 gRPC 或 REST 发送请求。
使用项目服务账号的适当凭据,如车队引擎:服务账号角色中所述。
示例:删除任务
以下示例演示了如何在车队引擎中删除任务。
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);
// Delete task request.
DeleteTaskRequest deleteTaskRequest = DeleteTaskRequest.newBuilder()
.setName(taskName)
.build();
// Error handling.
try {
deliveryService.deleteTask(deleteTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND: // The task doesn't exist.
break;
case FAILED_PRECONDITION: // Task is active and assigned to a delivery vehicle.
break;
case PERMISSION_DENIED:
break;
}
return;
}
处理错误
删除任务时,您可能会遇到 FAILED_PRECONDITION
错误,在这种情况下,任务处于活动状态并分配给了配送车辆。如需继续删除,请关闭任务。