অন্যান্য কাজের ধরন তৈরি করুন

এই দস্তাবেজটি অনুমান করে যে আপনি ফ্লিট ইঞ্জিনের ভূমিকা বিভাগে নির্ধারিত কাজগুলির পরিচায়ক নির্দেশিকা পড়েছেন এবং সেইসাথে একটি নির্ধারিত কাজ কী? এই বিভাগে।

নির্ধারিত কাজের জন্য ফ্লিট ইঞ্জিন বিভিন্ন বিস্তৃত শ্রেণীবিভাগের কাজ প্রদান করে:

  • চালানের কাজ : পিকআপ এবং চালানের ডেলিভারি সহ ড্রাইভিং কাজের জন্য ব্যবহার করুন।
  • অনুপলব্ধতা কাজ : ড্রাইভার অনুপলব্ধ সময়ে ব্যবহার করুন, যেমন প্রয়োজনীয় বিরতি সহ।
  • নির্ধারিত স্টপ টাস্ক : ড্রপ বক্স বা গ্রাহকের অবস্থানে অ-ড্রাইভিং কাজের জন্য ব্যবহার করুন, যেমন একটি বিল্ডিং প্রবেশ করার সময় বা একটি ডেলিভারি পয়েন্ট সনাক্ত করুন।

এই নথিটি আপনার সার্ভারে নন-শিপমেন্ট কাজগুলি কীভাবে তৈরি করতে হয় তা কভার করে। চালানের কাজের ধরনগুলির জন্য, চালানের কাজ তৈরি করুন দেখুন।

নন-ড্রাইভিং কাজের জন্য টাস্ক ক্ষেত্র

এই বিভাগে অনুপলব্ধতা এবং নির্ধারিত স্টপ টাস্ক উভয়ের জন্য প্রয়োজনীয় টাস্ক ক্ষেত্রগুলি নথিভুক্ত করে।

প্রয়োজনীয় টাস্ক ক্ষেত্র

ফ্লিট ইঞ্জিনে আপনার তৈরি করা প্রতিটি কাজের জন্য, আপনাকে অবশ্যই এটি প্রয়োজনীয় ক্ষেত্রগুলি প্রদান করতে হবে এবং যেকোনও ঐচ্ছিক ক্ষেত্রগুলিও প্রদান করতে পারে৷ ফ্লিট ইঞ্জিন অন্যান্য সমস্ত ক্ষেত্র উপেক্ষা করে, এবং একটি ব্যতিক্রম ছুঁড়ে দেয় যদি একটি টাস্ক তৈরির অনুরোধ একটি অ্যাসাইন করা deliveryVehicleId প্রদান করে। একটি যানবাহনে কার্য বরাদ্দ করতে, UpdateDeliveryVehicleRequest ব্যবহার করুন। আরও তথ্যের জন্য, কাজগুলি আপডেট করুন দেখুন।

মাঠ মান
type

টাস্ক টাইপের সাথে মেলে এমন টাইপ সেট করুন, যার মধ্যে একটি হল:

  • PICKUP
  • DELIVERY
  • SCHEDULED_STOP
  • UNAVAILABLE
state State.OPEN
task_id অনন্য টাস্ক আইডি। এটি চালানের জন্য ট্র্যাকিং নম্বর হওয়া উচিত নয়৷ আপনার সিস্টেমে টাস্ক আইডি না থাকলে, আপনি একটি সার্বজনীন অনন্য শনাক্তকারী (UUID) তৈরি করতে পারেন। সুনির্দিষ্ট জন্য, টাস্ক আইডি দেখুন।
tracking_id PICKUP বা DELIVERY কাজগুলি শুধুমাত্র : একটি চালান ট্র্যাক করতে আপনি যে নম্বর বা শনাক্তকারী ব্যবহার করছেন৷ নন-শিপমেন্ট কাজের জন্য এই ক্ষেত্রটি প্রদান করবেন না।
plannedLocation PICKUP , DELIVERY , বা SCHEDULED_STOP কাজগুলি শুধুমাত্র : যে অবস্থানে টাস্কটি সম্পন্ন করতে হবে৷ UNAVAILABLE কাজগুলির জন্য প্রয়োজন নেই৷
taskDuration টাস্ক সম্পূর্ণ করার জন্য প্রত্যাশিত সময় যোগ করুন। উদাহরণস্বরূপ, পার্কিং সন্ধান করতে বা হ্যান্ডঅফ অবস্থানে হাঁটতে।

ঐচ্ছিক চালান টাস্ক ক্ষেত্র

মাঠ মান
targetTimeWindow টাইম উইন্ডো যে সময়ে কাজটি সম্পন্ন করা উচিত। এই ক্ষেত্রটি রাউটিং আচরণকে প্রভাবিত করে না।
task_tracking_view_config PICKUP বা DELIVERY কাজগুলি শুধুমাত্র : টাস্ক ট্র্যাকিংয়ের জন্য কনফিগারেশন যা নির্দিষ্ট করে কোন ডেটা উপাদানগুলি কোন পরিস্থিতিতে শেষ ব্যবহারকারীদের কাছে দৃশ্যমান।
attributes কাস্টম টাস্ক অ্যাট্রিবিউটের একটি তালিকা। প্রতিটি বৈশিষ্ট্যের একটি অনন্য কী থাকতে হবে।

একটি অনুপলব্ধতা টাস্ক তৈরি করুন

আপনি অনুপলব্ধতা নির্দেশ করে একটি টাস্ক তৈরি করতে পারেন; উদাহরণস্বরূপ, ড্রাইভার বিরতির জন্য। একটি অনুপলব্ধ কাজ তৈরি করতে, নিম্নলিখিত নির্দেশিকাগুলি ব্যবহার করুন:

  • টাস্কের ধরনটি UNAVAILABLE হিসাবে সেট করুন।
  • ট্র্যাকিং আইডি অন্তর্ভুক্ত করবেন না।
  • যদিও আপনাকে একটি অনুপলব্ধতা কাজের জন্য একটি অবস্থান প্রদান করতে হবে না, এটি করা সারা দিন বর্ধিত ETA গণনা প্রদান করে।

গাড়ির অবস্থানের ক্ষেত্রে বিশেষ দৃশ্যমানতা নিয়ম প্রযোজ্য হয় যখন এটি যাত্রা ভাগাভাগি করার জন্য UNAVAILABLE টাস্কে থাকে।

  • শিপমেন্ট ট্র্যাকিং লাইব্রেরির সাথে সমন্বিত কনজিউমার অ্যাপস : যখন গাড়িটি একটি অনুপলব্ধতার টাস্কে থাকে, তখন ভোক্তা অ্যাপের ব্যবহারকারীরা গাড়ির অবস্থান দেখতে পায় না, যদিও তারা এখনও তাদের চালানের স্থিতির তথ্য দেখতে পারে।
  • ফ্লিট ট্র্যাকিং লাইব্রেরির সাথে সমন্বিত ফ্লিট ট্র্যাকিং অ্যাপ্লিকেশানগুলি : যখন গাড়িটি একটি অনুপলব্ধতার কাজে থাকে, তখন ফ্লিট ম্যানেজাররা যারা ফ্লিট ট্র্যাকিং অ্যাপ ব্যবহার করেন তারা অনুপলব্ধ কাজগুলির জন্য গাড়ির অবস্থান দেখতে সক্ষম হবেন৷

নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে জাভা gRPC লাইব্রেরি ব্যবহার করে একটি নির্ধারিত অনুপলব্ধতা টাস্ক তৈরি করা যায় বা CreateTask এ একটি HTTP REST অনুরোধ কীভাবে করা যায়।

gRPC

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

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Task settings
  String parent = "providers/" + PROJECT_ID;
  Task task = Task.newBuilder()
    .setType(Task.Type.UNAVAILABLE)
    .setState(Task.State.OPEN)
    .setTaskDuration(
      Duration.newBuilder().setSeconds(60 * 60))  // 1hr break
    .build();

  // Task request
  CreateTaskRequest createTaskRequest =
    CreateTaskRequest.newBuilder()  // No need for the header
        .setParent(parent)          // Avoid using auto-incrementing IDs for the taskId
        .setTaskId("task-8241890")  // Task ID assigned by the Provider
        .setTask(task)              // Initial state
        .build();

  // Error handling
  // If Fleet Engine does not have task with that ID and the credentials of the
  // requestor pass, the service creates the task successfully.

  try {
    Task createdTask = deliveryService.createTask(createTaskRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case ALREADY_EXISTS:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }
  ```

বিশ্রাম

একটি সার্ভার পরিবেশ থেকে একটি অনুপলব্ধ কাজ তৈরি করতে, CreateTask এ একটি HTTP REST কল করুন:

POST https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks?taskId=<id>

<id> টাস্কের জন্য একটি অনন্য শনাক্তকারী।

অনুরোধের শিরোনামে অবশ্যই Bearer <token> মান সহ একটি ক্ষেত্র অনুমোদন থাকতে হবে, যেখানে পরিষেবা অ্যাকাউন্টের ভূমিকা এবং JSON ওয়েব টোকেনে বর্ণিত নির্দেশিকা অনুসারে আপনার সার্ভার দ্বারা <token> জারি করা হয়।

অনুরোধের বডিতে অবশ্যই একটি Task সত্তা থাকতে হবে যাতে ড্রাইভিং নয় এমন কাজগুলির জন্য টাস্ক ক্ষেত্রগুলিতে বর্ণিত উপযুক্ত ক্ষেত্রগুলি রয়েছে৷

curl কমান্ডের উদাহরণ:

 # Set $JWT, $PROJECT_ID, and $TASK_ID in the local environment
 curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?taskId=${TASK_ID}" \
   -H "Content-type: application/json" \
   -H "Authorization: Bearer ${JWT}" \
   --data-binary @- << EOM
 {
   "type": "UNAVAILABLE",
   "state": "OPEN",
   "plannedLocation": {
      "point": {
         "latitude": -6.195139,
         "longitude": 106.820826
      }
   },
   "taskDuration": "300s"
 }
 EOM

একটি নির্ধারিত স্টপ টাস্ক তৈরি করুন

আপনি একটি নির্ধারিত স্টপের জন্য একটি টাস্ক তৈরি করতে পারেন; উদাহরণস্বরূপ, গ্রাহকের অবস্থানে নন-ড্রাইভিং কাজগুলির জন্য, স্টপে রিফুয়েল করার জন্য, অথবা যখন একজন ড্রাইভার ফিডার গাড়ি থেকে চালান গ্রহণ করে। আপনি যখন একটি নির্ধারিত স্টপ টাস্ক তৈরি করেন, নিম্নলিখিত নির্দেশিকাগুলি ব্যবহার করুন:

  • টাস্ক টাইপ সেট করুন
  • ট্র্যাকিং আইডি অন্তর্ভুক্ত করবেন না।
  • আপনি ঐচ্ছিকভাবে একটি অবস্থান প্রদান করতে পারেন.

নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে জাভা gRPC লাইব্রেরি ব্যবহার করে একটি নির্ধারিত অনুপলব্ধতা টাস্ক তৈরি করা যায় বা CreateTask এ একটি HTTP REST অনুরোধ কীভাবে করা যায়।

gRPC

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

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Task settings
  String parent = "providers/" + PROJECT_ID;
  Task task = Task.newBuilder()
    .setType(Task.Type.SCHEDULED_STOP)
    .setState(Task.State.OPEN)
    .setPlannedLocation(               // Grand Indonesia East Mall
      LocationInfo.newBuilder().setPoint(
        LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
    .setTaskDuration(
      Duration.newBuilder().setSeconds(2 * 60))
    .build();

  // Task request
  CreateTaskRequest createTaskRequest =
    CreateTaskRequest.newBuilder()  // No need for the header
        .setParent(parent)
        .setTaskId("task-8241890")  // Task ID assigned by the Provider
        .setTrip(task)              // Initial state
        .build();

  // Error handling
  // If Fleet Engine does not have task with that ID and the credentials of the
  // requestor pass, the service creates the task successfully.

  try {
    Task createdTask = deliveryService.createTask(createTaskRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case ALREADY_EXISTS:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }
  ```

বিশ্রাম

একটি সার্ভার পরিবেশ থেকে একটি নির্ধারিত স্টপ টাস্ক তৈরি করতে, CreateTask এ একটি HTTP REST কল করুন:

POST https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks?taskId=<id>

<id> টাস্কের জন্য একটি অনন্য শনাক্তকারী।

অনুরোধের শিরোনামে অবশ্যই Bearer <token> মান সহ একটি ক্ষেত্র অনুমোদন থাকতে হবে, যেখানে পরিষেবা অ্যাকাউন্টের ভূমিকা এবং JSON ওয়েব টোকেনে বর্ণিত নির্দেশিকা অনুসারে আপনার সার্ভার দ্বারা <token> জারি করা হয়।

অনুরোধের অংশে অবশ্যই একটি Task সত্তা থাকতে হবে:

curl কমান্ডের উদাহরণ:

# Set $JWT, $PROJECT_ID, and $TASK_ID in the local environment
 curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?taskId=${TASK_ID}" \
   -H "Content-type: application/json" \
   -H "Authorization: Bearer ${JWT}" \
   --data-binary @- << EOM
 {
   "type": "SCHEDULED_STOP",
   "state": "OPEN",
   "plannedLocation": {
      "point": {
         "latitude": -6.195139,
         "longitude": 106.820826
      }
   },
   "taskDuration": "600s"
 }
 EOM

এরপর কি