حذف المهمة

توضّح هذه المقالة كيفية حذف مهمة. ويفترض أنّك أعددت Fleet Engine. يُرجى الاطّلاع على مقالة إعداد Fleet Engine.

أساسيات حذف المهام

قد يستخدم نظامك Fleet Engine لحذف مهمة في الحالات التالية:

  • لإجراء عمليات التنظيف أثناء اختبار واجهات برمجة تطبيقات Fleet Engine
  • لحذف مهمة لم تعُد مطلوبة على الفور

لحذف مهمة، أرسِل طلبًا باستخدام gRPC أو REST.

  • طريقة DeleteTask(): gRPC أو REST
  • رسالة DeleteTaskRequest: gRPC فقط

استخدِم بيانات الاعتماد المناسبة لحساب الخدمة في مشروعك كما هو موضّح في مقالة Fleet Engine: أدوار حساب الخدمة.

مثال: حذف مهمة

يوضّح المثال التالي كيفية حذف مهمة في Fleet Engine.

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، ما يعني أنّ المهمة نشطة ومسنَدة إلى مركبة توصيل. لمواصلة عملية الحذف، عليك إغلاق المهمة.

الخطوات التالية