এই ডকুমেন্টটি সার্ভার বা ব্রাউজার থেকে কীভাবে আপনি টাস্ক তথ্য খুঁজে পেতে পারেন তা বর্ণনা করে। ফ্লিট ইঞ্জিন টাস্ক খুঁজে বের করার দুটি উপায় সমর্থন করে:
কাজগুলি সন্ধান করুন : আপনি নিম্নলিখিত আইডিগুলির মাধ্যমে কাজগুলি অনুসন্ধান করতে পারেন:
- টাস্ক আইডি: ফ্লিট অপারেটরদের মতো ব্যবহারকারীরা ব্যবহার করেন যাদের টাস্ক ডেটার সম্পূর্ণ ভিউতে অ্যাক্সেস থাকে।
- ট্র্যাকিং আইডি: আপনার ক্লায়েন্ট সফ্টওয়্যার দ্বারা ব্যবহৃত হয় সীমিত তথ্য প্রদানের জন্য একজন শেষ ব্যবহারকারীকে, যেমন যখন তাদের বাড়িতে কোনও প্যাকেজ প্রত্যাশিত হয়।
টাস্ক আইডি এবং টাস্ক ট্র্যাকিং আইডির মধ্যে পার্থক্য বুঝতে ভুলবেন না। এগুলি এক নয়। নির্ধারিত টাস্ক গাইডে বেসিক টাস্ক ফিল্ডগুলি দেখুন।
তালিকাভুক্ত কাজ : কেবলমাত্র বিশ্বস্ত ব্যবহারকারীদের জন্য তৈরি কাজের একটি বিস্তৃত অ্যাক্সেস।
কাজগুলি দেখুন
এই বিভাগটি টাস্ক আইডি বা ট্র্যাকিং আইডি দ্বারা কীভাবে কাজগুলি অনুসন্ধান করতে হয় তা বর্ণনা করে। এর নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:
ট্র্যাকিং আইডি দ্বারা অনুসন্ধানগুলি অবশ্যই ট্র্যাক করা বস্তুর জন্য দৃশ্যমানতা নিয়মে বর্ণিত দৃশ্যমানতার নিয়মগুলি মেনে চলতে হবে।
নিরাপত্তা ঝুঁকি সীমিত করতে যতটা সম্ভব সংকীর্ণ টোকেন ব্যবহার করুন। উদাহরণস্বরূপ, যদি আপনি একটি ডেলিভারি কনজিউমার টোকেন ব্যবহার করেন, তাহলে যেকোনো কল কেবলমাত্র সেই শেষ ব্যবহারকারীর সাথে প্রাসঙ্গিক তথ্য ফেরত পাঠাবে, যেমন জাহাজের প্রেরক বা গ্রহণকারী। Fleet Engine প্রতিক্রিয়াগুলিতে অন্যান্য সমস্ত তথ্য সম্পাদনা করে। টোকেন সম্পর্কে আরও তথ্যের জন্য, JSON ওয়েব টোকেন দেখুন।
টাস্ক আইডি অনুসারে টাস্ক খুঁজুন
আপনি gRPC অথবা REST ব্যবহার করে সার্ভার এনভায়রনমেন্ট থেকে টাস্ক আইডি দিয়ে একটি টাস্ক খুঁজে পেতে পারেন। নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে জাভা gRPC লাইব্রেরি অথবা GetTask- এ REST অনুরোধ ব্যবহার করতে হয়।
জিআরপিসি
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8597549";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task request
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
GetTaskRequest getTaskRequest = GetTaskRequest.newBuilder() // No need for the header
.setName(taskName)
.build();
try {
Task task = deliveryService.getTask(getTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
বিশ্রাম
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<taskId>
- <id> হল টাস্কের জন্য একটি অনন্য শনাক্তকারী।
- <taskId> হল অনুসন্ধান করা টাস্কের আইডি।
- অনুরোধের শিরোনামে অবশ্যই Bearer <token> মান সহ একটি ক্ষেত্র Authorization থাকতে হবে, যেখানে <token> পরিষেবা অ্যাকাউন্ট ভূমিকা এবং JSON ওয়েব টোকেনগুলিতে বর্ণিত নির্দেশিকা অনুসারে আপনার সার্ভার দ্বারা জারি করা হয়।
- অনুরোধের মূল অংশটি অবশ্যই খালি থাকতে হবে।
- যদি লুকআপ সফল হয়, তাহলে রেসপন্স বডিতে একটি টাস্ক এন্টিটি থাকবে।
curl কমান্ডের উদাহরণ:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}"
ট্র্যাকিং আইডি ব্যবহার করে কাজগুলি অনুসন্ধান করুন
নিম্নলিখিত উদাহরণগুলি দেখায় যে কীভাবে gRPC অথবা GetTaskTrackingInfo এ HTTP REST কল ব্যবহার করে তাদের শিপমেন্ট ট্র্যাকিং আইডি দিয়ে কাজগুলি অনুসন্ধান করতে হয়।
জিআরপিসি
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
GetTaskTrackingInfoRequest getTaskTrackingInfoRequest = GetTaskTrackingInfoRequest.newBuilder() // No need for the header
.setParent(parent)
.setTrackingId(TRACKING_ID)
.build();
try {
TaskTrackingInfo taskTrackingInfo = deliveryService.getTaskTrackingInfo(getTaskTrackingInfoRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
বিশ্রাম
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/taskTrackingInfo/<tracking_id>
<tracking_id> হল টাস্কের সাথে সম্পর্কিত ট্র্যাকিং আইডি।
অনুরোধের শিরোনামে Bearer <token> মান সহ একটি ক্ষেত্র Authorization থাকতে হবে, যেখানে <token> সঠিক পরিষেবা অ্যাকাউন্টের ভূমিকা বহন করে। পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।
যদি লুকআপ সফল হয়, তাহলে রেসপন্স বডিতে একটি টাস্কট্র্যাকিংইনফো এন্টিটি থাকবে।
curl কমান্ডের উদাহরণ:
# Set JWT, PROJECT_ID, and TRACKING_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/taskTrackingInfo/${TRACKING_ID}"কাজগুলির তালিকা তৈরি করুন
তালিকাভুক্ত কাজগুলি কার্যগুলিতে বিস্তৃত অ্যাক্সেসের অনুরোধ করে। তালিকাভুক্ত কাজগুলি কেবল বিশ্বস্ত ব্যবহারকারীদের জন্য তৈরি। তালিকাভুক্ত কাজের অনুরোধ করার সময় ডেলিভারি ফ্লিট রিডার বা ডেলিভারি অ্যাডমিন প্রমাণীকরণ টোকেন ব্যবহার করুন। আরও তথ্যের জন্য পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।
পৃষ্ঠা তালিকা
কাজের তালিকা পৃষ্ঠাঙ্কিত করা হয়। তালিকার কাজের অনুরোধে একটি পৃষ্ঠার আকার নির্দিষ্ট করা যেতে পারে। যদি একটি পৃষ্ঠার আকার নির্দিষ্ট করা থাকে, তাহলে ফেরত দেওয়া কাজের সংখ্যা নির্দিষ্ট পৃষ্ঠার আকারের চেয়ে বেশি হবে না। যদি কোনও পৃষ্ঠার আকার উপস্থিত না থাকে, তাহলে একটি যুক্তিসঙ্গত ডিফল্ট ব্যবহার করা হয়। যদি অনুরোধ করা পৃষ্ঠার আকার একটি অভ্যন্তরীণ সর্বোচ্চ মান অতিক্রম করে, তাহলে অভ্যন্তরীণ সর্বোচ্চ ব্যবহার করা হয়।
একটি টাস্ক লিস্টে পরবর্তী পৃষ্ঠার ফলাফল পড়ার জন্য একটি টোকেন অন্তর্ভুক্ত থাকতে পারে। পরবর্তী পৃষ্ঠাটি পুনরুদ্ধার করতে, পৃষ্ঠা টোকেনের সাথে একই অনুরোধটি পুনরায় ইস্যু করুন। যখন ফিরে আসা পৃষ্ঠা টোকেনটি খালি থাকে, তখন পুনরুদ্ধারের জন্য আর কোনও কাজ উপলব্ধ থাকে না।
কাজ তালিকাভুক্ত করার সময় ক্ষেত্রগুলি
ফ্লিট ইঞ্জিন কাজগুলি তালিকাভুক্ত করার সময় নিম্নলিখিত ক্ষেত্রগুলি সংশোধন করে:
-
VehicleStop.planned_location -
VehicleStop.state -
VehicleStop.TaskInfo.taskId
গুগল এপিআই উন্নতি প্রস্তাবনার উপর ভিত্তি করে নিম্নলিখিত ফিল্ড ফর্ম্যাটগুলি ব্যবহার করুন:
| ক্ষেত্রের ধরণ | বিন্যাস | উদাহরণ |
|---|---|---|
| টাইমস্ট্যাম্প | আরএফসি-৩৩৩৯ | task_outcome_time = 2022-03-01T11:30:00-08:00 |
| সময়কাল | সেকেন্ডের পরে একটি s সংখ্যা | task_duration = 120s |
| এনাম | স্ট্রিং | state = CLOSED AND type = PICKUP |
| স্থান | point.latitude এবং point.longitude | planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
তালিকাভুক্ত কাজগুলি ফিল্টার করুন
আপনি বেশিরভাগ টাস্ক প্রোপার্টি অনুসারে তালিকাভুক্ত কাজগুলি ফিল্টার করতে পারেন। ফিল্টার কোয়েরি সিনট্যাক্সের জন্য, AIP-160 দেখুন। যদি কোনও ফিল্টার কোয়েরি নির্দিষ্ট না থাকে, তবে সমস্ত কাজ তালিকাভুক্ত করা হয়।
নিম্নলিখিত টেবিলে ফিল্টারিংয়ের জন্য ব্যবহার করা যেতে পারে এমন বৈধ টাস্ক বৈশিষ্ট্যগুলি দেখানো হয়েছে:
| ফিল্টারিং তালিকার জন্য কার্য বৈশিষ্ট্য | |
|---|---|
|
|
ফিল্টার কোয়েরি অপারেটরদের সম্পূর্ণ তালিকার জন্য AIP-160 দেখুন।
কাজের উদাহরণ তালিকাভুক্ত করুন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে deliveryVehicleId এবং একটি টাস্ক অ্যাট্রিবিউটের জন্য কাজগুলি তালিকাভুক্ত করতে হয়, উভয়ই জাভা gRPC লাইব্রেরি এবং HTTP REST কলের মাধ্যমে ListTasks এ।
একটি সফল প্রতিক্রিয়া এখনও খালি থাকতে পারে। একটি খালি প্রতিক্রিয়া নির্দেশ করে যে সরবরাহকৃত deliveryVehicleId সাথে কোনও কাজ সম্পর্কিত নয়।
জিআরপিসি
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
ListTasksRequest listTasksRequest = ListTasksRequest.newBuilder() // No need for the header
.setParent(parent)
.setFilter("delivery_vehicle_id = 123 AND attributes.foo = true")
.build();
try {
ListTasksResponse listTasksResponse = deliveryService.listTasks(listTasksRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
বিশ্রাম
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks
তালিকাভুক্ত কাজগুলিতে একটি ফিল্টার প্রয়োগ করতে, একটি "ফিল্টার" URL প্যারামিটার অন্তর্ভুক্ত করুন যার মান একটি URL-এস্কেপড ফিল্টার কোয়েরি সহ।
অনুরোধের শিরোনামে Bearer <token> মান সহ একটি ক্ষেত্র Authorization থাকতে হবে, যেখানে <token> সঠিক পরিষেবা অ্যাকাউন্টের ভূমিকা বহন করে। পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।
একটি সফল লুকআপ নিম্নলিখিত কাঠামো সহ একটি প্রতিক্রিয়া বডি প্রদান করে:
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
curl কমান্ডের উদাহরণ:
# Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?filter=state%20%3D%20OPEN%20AND%20delivery_vehicle_id%20%3D%20${VEHICLE_ID}"