删除任务

本文档介绍了如何删除任务。本文假定您已设置 Fleet Engine。请参阅设置车队引擎

任务删除基础知识

在以下情况下,系统可能会使用 Fleet Engine 删除任务:

  • 在测试车队引擎 API 时执行清理操作。
  • 立即删除不再需要的任务。

如需删除任务,请使用 gRPC 或 REST 发送请求。

  • DeleteTask() 方法:gRPCREST
  • DeleteTaskRequest 消息:仅限 gRPC

使用项目服务账号的适当凭据,如车队引擎:服务账号角色中所述。

示例:删除任务

以下示例演示了如何在车队引擎中删除任务。

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 错误,在这种情况下,任务处于活动状态并分配给了配送车辆。如需继续删除,请关闭任务

后续步骤