API بهینهسازی مسیر دو روش را ارائه میدهد:
-
OptimizeToursیک متد همگام است که در پاسخ به یکOptimizeToursRequestیک مسیر بهینهشده را برمیگرداند. کلاینتها باید تا زمان پردازش درخواست و بازگشتOptimizeToursResponseیا خطا، یک اتصال باز به Route Optimization API را حفظ کنند. -
BatchOptimizeToursیک متد غیرهمزمان است که URIها را برای یک یا چندOptimizeToursRequestو پیامهایOptimizeToursResponseمربوطه میپذیرد و نام منبع یک عملیات طولانی مدت (LRO) ( REST ، gRPC ) را که برای بررسی تکمیل دستهای استفاده میشود، برمیگرداند.OptimizeToursRequestها در پسزمینه پردازش میشوند، بنابراین کلاینتها فقط به اندازهای کهBatchOptimizeToursRequestارسال شود یاGetOperationبرای بررسی وضعیت LRO فراخوانی شود، یک اتصال باز به API بهینهسازی مسیر را حفظ میکنند.BatchOptimizeToursدرخواستها را از Google Cloud Storage میخواند و پاسخها را در آن مینویسد.
موارد استفاده
OptimizeTours برای حل درخواستهای کوچک و ساده یا برای درخواستهایی با زمان حل چند دقیقه یا کمتر مناسب است. حفظ اتصالات طولانی مدت به Route Optimization API، خطر وقفه قبل از بازگشت راهحل را افزایش میدهد.
BatchOptimizeTours میتواند درخواستهای بزرگتر و درخواستهایی با زمان حل طولانیتر را مدیریت کند، زیرا نیازی به اتصال طولانی مدت به Route Optimization API ندارد.
عملیات طولانی مدت
LROها با استفاده از متد GetOperation از API بهینهسازی مسیر خوانده میشوند تا وضعیت تکمیل یک دسته را بررسی کنند. LROها شامل یک ویژگی done هستند که نشان میدهد آیا پردازش کل دسته کامل شده است یا خیر و یک فیلد error که خطاهای رخ داده در حین پردازش را گزارش میدهد. اگر done برابر با true باشد و هیچ error وجود نداشته باشد، دسته با موفقیت تکمیل شده است. وجود error نشان میدهد که پردازش برخی یا تمام دسته با شکست مواجه شده است.
چرخه حیات معمول یک درخواست BatchOptimizeTours به شرح زیر است:
- یک
BatchOptimizeToursRequestبه Route Optimization API ارسال کنید، که نام منبع یک LRO را برمیگرداند. -
GetOperationبا نام منبع LRO برگردانده شده Poll کنید تا زمانی که ویژگیهایdoneیاerrorدر پاسخ LRO ظاهر شوند. - اگر
doneبرابر با true باشد و خطایی وجود نداشته باشد،OptimizeToursResponsesاز URI های Google Cloud Storage مشخص شده در درخواستBatchOptimizeToursبخوانید. اگرerrorوجود داشته باشد، خطا را بررسی کنید،OptimizeToursRequestها را بر اساس آن در Google Cloud Storage به روز کنید و بسته به خطای مشاهده شده، در صورت لزوم دوباره تلاش کنید.
شما میتوانید درخواستهای OptimizeTours و BatchOptimizeTours را به روشهای مختلفی، چه از طریق خط فرمان و چه با استفاده از یک کتابخانه کلاینت، ارسال کنید.