Package google.longrunning

شاخص

عملیات

عملیات طولانی مدت را با یک سرویس API مدیریت می کند.

هنگامی که یک متد API معمولاً زمان زیادی برای تکمیل نیاز دارد، می‌توان آن را طوری طراحی کرد که Operation به مشتری بازگرداند، و مشتری می‌تواند از این رابط برای دریافت پاسخ واقعی به صورت ناهمزمان با نظرسنجی منبع عملیاتی استفاده کند یا منبع عملیات را به API دیگری منتقل کند. مانند Pub/Sub API) برای دریافت پاسخ. هر سرویس API که عملیات طولانی‌مدت را برمی‌گرداند باید رابط Operations را پیاده‌سازی کند تا توسعه‌دهندگان بتوانند تجربه مشتری ثابتی داشته باشند.

لغو عملیات

rpc CancelOperation( CancelOperationRequest ) returns ( Empty )

لغو ناهمزمان را در یک عملیات طولانی مدت شروع می کند. سرور تمام تلاش خود را برای لغو عملیات انجام می دهد، اما موفقیت تضمین نشده است. اگر سرور از این روش پشتیبانی نمی‌کند، google.rpc.Code.UNIMPLEMENTED را برمی‌گرداند. مشتریان می‌توانند از Operations.GetOperation یا روش‌های دیگر برای بررسی اینکه آیا لغو موفقیت‌آمیز بوده است یا اینکه علی‌رغم لغو، عملیات تکمیل شده است، استفاده کنند. در صورت لغو موفقیت آمیز، عملیات حذف نمی شود. در عوض، به عملیاتی با مقدار Operation.error با google.rpc.Status.code 1 تبدیل می شود که مربوط به Code.CANCELLED است.

محدوده مجوز

به محدوده OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/cloud-platform
DeleteOperation

rpc DeleteOperation( DeleteOperationRequest ) returns ( Empty )

یک عملیات طولانی مدت را حذف می کند. این روش نشان می دهد که مشتری دیگر علاقه ای به نتیجه عملیات ندارد. این عملیات را لغو نمی کند. اگر سرور از این روش پشتیبانی نمی‌کند، google.rpc.Code.UNIMPLEMENTED را برمی‌گرداند.

محدوده مجوز

به محدوده OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/cloud-platform
GetOperation

rpc GetOperation( GetOperationRequest ) returns ( Operation )

آخرین وضعیت یک عملیات طولانی مدت را دریافت می کند. مشتریان می توانند از این روش برای نظرسنجی نتیجه عملیات در فواصل زمانی که توسط سرویس API توصیه می شود استفاده کنند.

محدوده مجوز

به محدوده OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/cloud-platform
مجوزهای IAM

به مجوز IAM زیر در منبع name نیاز دارد:

  • routeoptimization.operations.get

برای اطلاعات بیشتر، به مستندات IAM مراجعه کنید.

ListOperations

rpc ListOperations( ListOperationsRequest ) returns ( ListOperationsResponse )

عملیاتی را فهرست می کند که با فیلتر مشخص شده در درخواست مطابقت دارند. اگر سرور از این روش پشتیبانی نکند، UNIMPLEMENTED برمی‌گرداند.

محدوده مجوز

به محدوده OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/cloud-platform
WaitOperation

rpc WaitOperation( WaitOperationRequest ) returns ( Operation )

صبر می کند تا عملیات طولانی مدت مشخص شده انجام شود یا حداکثر به یک بازه زمانی مشخص برسد و آخرین حالت را برمی گرداند. اگر عملیات قبلا انجام شده باشد، آخرین حالت بلافاصله برگردانده می شود. اگر مدت زمان تعیین شده بیشتر از مهلت زمانی پیش‌فرض HTTP/RPC باشد، از مهلت زمانی HTTP/RPC استفاده می‌شود. اگر سرور از این روش پشتیبانی نمی کند، google.rpc.Code.UNIMPLEMENTED را برمی گرداند. توجه داشته باشید که این روش بر اساس بهترین تلاش است. ممکن است آخرین وضعیت را قبل از مهلت زمانی مشخص شده (از جمله فورا) برگرداند، به این معنی که حتی پاسخ فوری نیز تضمینی برای انجام عملیات نیست.

محدوده مجوز

به محدوده OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/cloud-platform

CancelOperationRequest

پیام درخواست برای Operations.CancelOperation .

فیلدها
name

string

نام منبع عملیاتی که باید لغو شود.

DeleteOperationRequest

پیام درخواست برای Operations.DeleteOperation .

فیلدها
name

string

نام منبع عملیاتی که باید حذف شود.

GetOperationRequest

پیام درخواست برای Operations.GetOperation .

فیلدها
name

string

نام منبع عملیات.

ListOperationsRequest

پیام درخواست برای Operations.ListOperations .

فیلدها
name

string

نام منبع اصلی عملیات.

filter

string

فیلتر لیست استاندارد

page_size

int32

اندازه صفحه فهرست استاندارد

page_token

string

نشانه صفحه فهرست استاندارد.

ListOperationsResponse

پیام پاسخ برای Operations.ListOperations .

فیلدها
operations[]

Operation

لیستی از عملیاتی که با فیلتر مشخص شده در درخواست مطابقت دارد.

next_page_token

string

نشانه استاندارد صفحه بعدی لیست.

عملیات

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

فیلدها
name

string

نام اختصاص داده شده به سرور، که فقط در همان سرویسی که در ابتدا آن را برمی گرداند منحصر به فرد است. اگر از نگاشت پیش‌فرض HTTP استفاده می‌کنید، name باید یک نام منبع باشد که با operations/{unique_id} ختم می‌شود.

metadata

Any

فراداده خاص سرویس مرتبط با عملیات. معمولاً حاوی اطلاعات پیشرفت و ابرداده های رایج مانند زمان ایجاد است. برخی از خدمات ممکن است چنین متادیتا را ارائه ندهند. هر روشی که عملیات طولانی‌مدت را برمی‌گرداند، در صورت وجود، باید نوع ابرداده را مستند کند.

done

bool

اگر مقدار false باشد، به این معنی است که عملیات هنوز در حال انجام است. اگر true ، عملیات تکمیل شده و error یا response در دسترس است.

result میدان اتحادیه نتیجه عملیات، که می تواند یک error یا یک response معتبر باشد. اگر done == false ، نه error و نه response تنظیم می شود. اگر done == true ، دقیقاً یکی از error یا response را می توان تنظیم کرد. برخی از خدمات ممکن است نتیجه را ارائه نکنند. result می تواند تنها یکی از موارد زیر باشد:
error

Status

نتیجه خطای عملیات در صورت خرابی یا لغو.

response

Any

پاسخ عادی و موفقیت آمیز عمل. اگر روش اصلی هیچ داده‌ای را در مورد موفقیت بازگرداند، مانند Delete ، پاسخ google.protobuf.Empty است. اگر روش اصلی استاندارد Get / Create / Update باشد، پاسخ باید منبع باشد. برای روش‌های دیگر، پاسخ باید دارای نوع XxxResponse باشد که Xxx نام روش اصلی است. به عنوان مثال، اگر نام متد اصلی TakeSnapshot() باشد، نوع پاسخ استنباط شده TakeSnapshotResponse است.

WaitOperationRequest

پیام درخواست برای Operations.WaitOperation .

فیلدها
name

string

نام منبع عملیاتی که باید منتظر ماند.

timeout

Duration

حداکثر مدت زمان انتظار قبل از اتمام زمان. اگر خالی باقی بماند، انتظار حداکثر زمانی خواهد بود که پروتکل HTTP/RPC زیربنایی اجازه می دهد. اگر مهلت زمینه RPC نیز مشخص شده باشد، از مهلت کوتاه‌تر استفاده می‌شود.