ایجاد وظایف به صورت دسته ای

این سند نحوه ایجاد دسته ای از وظایف را از محیط سرور با استفاده از gRPC یا REST نشان می دهد. برای جزئیات بیشتر در مورد ایجاد وظایف، نگاه کنید به:

فیلدهای وظیفه برای ایجاد وظایف به صورت دسته ای

هنگام ایجاد کارها به صورت دسته‌ای، هر عنصر CreateTasksRequest در requests باید قوانین اعتبارسنجی یکسانی را که درخواست CreateTask برای یک کار واحد ارائه می‌کند، بگذراند، با این تفاوت که فیلدهای parent و header اختیاری هستند. در صورت تنظیم، باید با فیلدهای مربوطه خود در BatchCreateTasksRequest سطح بالایی یکسان باشند.

برای اطلاعات بیشتر به مستندات مرجع API برای BatchCreateTasks برای gRPC یا REST مراجعه کنید.

فیلدهای دسته ای مورد نیاز

رشته ارزش
درخواست ها Array<CreateTasksRequest>

فیلدهای کار دسته ای اختیاری

رشته ارزش
سرتیتر DeliveryRequestHeader

مجموعه ای از وظایف را ایجاد کنید

مثال‌های زیر نشان می‌دهند که چگونه می‌توان با استفاده از کتابخانه gRPC جاوا، هر دو وظیفه تحویل و تحویل را ایجاد کرد یا چگونه یک درخواست HTTP REST برای BatchCreateTask ایجاد کرد.

gRPC

static final String PROJECT_ID = "my-delivery-co-gcp-project";

DeliveryServiceBlockingStub deliveryService =
  DeliveryServiceGrpc.newBlockingStub(channel);

// Delivery Task settings
Task deliveryTask = Task.newBuilder()
  .setType(Task.Type.DELIVERY)
  .setState(Task.State.OPEN)
  .setTrackingId("delivery-tracking-id")
  .setPlannedLocation(               // Grand Indonesia East Mall
    LocationInfo.newBuilder().setPoint(
      LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
  .setTaskDuration(
    Duration.newBuilder().setSeconds(2 * 60))
  .build();

// Delivery Task request
CreateTaskRequest createDeliveryTaskRequest =
  CreateTaskRequest.newBuilder()  // No need for the header or parent fields
      .setTaskId("task-8312508")  // Task ID assigned by the Provider
      .setTask(deliveryTask)      // Initial state
      .build();

// Pickup Task settings
Task pickupTask = Task.newBuilder()
  .setType(Task.Type.PICKUP)
  .setState(Task.State.OPEN)
  .setTrackingId("pickup-tracking-id")
  .setPlannedLocation(               // Grand Indonesia East Mall
    LocationInfo.newBuilder().setPoint(
      LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
  .setTaskDuration(
    Duration.newBuilder().setSeconds(2 * 60))
  .build();

// Pickup Task request
CreateTaskRequest createPickupTaskRequest =
  CreateTaskRequest.newBuilder()  // No need for the header or parent fields
      .setTaskId("task-8241890")  // Task ID assigned by the Provider
      .setTask(pickupTask)        // Initial state
      .build();

// Batch Create Tasks settings
String parent = "providers/" + PROJECT_ID;

// Batch Create Tasks request
BatchCreateTasksRequest batchCreateTasksRequest =
  BatchCreateTasksRequest.newBuilder()
      .setParent(parent)
      .addRequests(createDeliveryTaskRequest)
      .addRequests(createPickupTaskRequest)
      .build();

// Error handling
// If Fleet Engine does not have any task(s) with these task ID(s) and the
// credentials of the requestor pass, the service creates the task(s)
// successfully.

try {
  BatchCreateTasksResponse createdTasks = deliveryService.batchCreateTasks(
    batchCreateTasksRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

باقی مانده

برای ایجاد یک کار تحویل و دریافت از یک محیط سرور، یک تماس HTTP REST با BatchCreateTasks برقرار کنید:

POST https://fleetengine.googleapis.com/v1/providers/<project_id>/batchCreate

<id> یک شناسه منحصر به فرد برای کار است.

سرصفحه درخواست باید حاوی یک فیلد مجوز با مقدار حامل <token> باشد که در آن <token> توسط سرور شما مطابق دستورالعمل‌های شرح داده شده در نقش‌های حساب سرویس و نشانه‌های وب JSON صادر می‌شود.

بدنه درخواست باید حاوی یک موجودیت BatchCreateTasksRequest باشد.

مثال دستور curl :

# Set $JWT, $PROJECT_ID, $DELIVERY_TRACKING_ID, $DELIVERY_TASK_ID,
# $PICKUP_TRACKING_ID, and $PICKUP_TASK_ID in the local environment
curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks:batchCreate" \
 -H "Content-type: application/json" \
 -H "Authorization: Bearer ${JWT}" \
 --data-binary @- << EOM
{
 "requests" : [
   {
     "taskId": "${DELIVERY_TASK_ID}",
     "task" : {
       "type": "DELIVERY",
       "state": "OPEN",
       "trackingId": "${DELIVERY_TRACKING_ID}",
       "plannedLocation": {
         "point": {
             "latitude": -6.195139,
             "longitude": 106.820826
         }
       },
       "taskDuration": "90s"
     }
   },
   {
     "taskId": "${PICKUP_TASK_ID}",
     "task" : {
       "type": "PICKUP",
       "state": "OPEN",
       "trackingId": "${PICKUP_TRACKING_ID}",
       "plannedLocation": {
         "point": {
             "latitude": -6.195139,
             "longitude": 106.820826
         }
       },
       "taskDuration": "90s"
     }
   }
 ]
}
EOM

بعدش چی