Package google.longrunning

索引

作業

使用 API 服務管理長時間執行作業。

如果 API 方法通常要長時間才能完成,則可設計為向用戶端傳回 Operation,而用戶端可以使用這個介面,透過輪詢作業資源來非同步接收實際回應,或是將作業資源傳遞至其他 API (例如 Pub/Sub API) 來接收回應。凡是傳回長時間執行作業的 API 服務都應實作 Operations 介面,讓開發人員能獲得一致的用戶端體驗。

CancelOperation

rpc CancelOperation(CancelOperationRequest) returns (Empty)

取消轉移。使用 transferOperations.get 方法,檢查是否成功取消作業,或是否在 cancel 要求下仍完成作業。

取消作業後,目前正在執行的轉移作業會中斷。對於週期性轉移工作,系統仍會執行下一個轉移工作的例項。舉例來說,如果工作已設定為每天下午 1 點執行,而你在下午 1 點 5 分取消週一的作業,週一轉移作業就會停止。不過,我們仍會在星期二嘗試執行轉移工作。

這項設定只適用於目前執行中的作業。如果目前沒有作業在執行,cancel 就不會執行任何動作。

取消工作後,下一個工作會計算檔案的差異,並可能修復任何不一致的狀態。舉例來說,如果您每天執行工作,而今天的工作找到 10 個新檔案,並在您取消工作前轉移了 5 個檔案,明天的工作轉移作業就會計算新的差異,包括今天未複製的 5 個檔案,以及明天發現的任何新檔案。

授權範圍

需要下列 OAuth 範圍:

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

詳情請參閱 Authentication Overview

GetOperation

rpc GetOperation(GetOperationRequest) returns (Operation)

取得長時間執行作業的最新狀態。用戶端可以使用這個方法按照 API 服務建議的間隔查詢作業結果。

授權範圍

需要下列 OAuth 範圍:

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

詳情請參閱 Authentication Overview

ListOperations

rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse)

列出移轉作業。作業會依建立時間由新至舊排序。

授權範圍

需要下列 OAuth 範圍:

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

詳情請參閱 Authentication Overview

CancelOperationRequest

Operations.CancelOperation 的要求訊息。

欄位
name

string

要取消的作業資源名稱。

GetOperationRequest

Operations.GetOperation 的要求訊息。

欄位
name

string

作業資源的名稱。

ListOperationsRequest

Operations.ListOperations 的要求訊息。

欄位
name

string

這是必要旗標,所列類型的名稱,必須是 transferOperations

filter

string

這是必要旗標,以 JSON 文字格式指定的查詢參數清單,格式如下:{"projectId":"my_project_id", "jobNames":["jobid1","jobid2",...], "jobNamePattern": "job_name_pattern", "operationNames":["opid1","opid2",...], "operationNamePattern": "operation_name_pattern", "minCreationTime": "min_creation_time", "maxCreationTime": "max_creation_time", "transferStatuses":["status1","status2",...]}

jobNamesoperationNamestransferStatuses 支援多個值,因此必須使用陣列符號指定。projectId 是唯一的必要引數。如果指定了 jobNamePatternoperationNamePattern,則這兩個值必須分別與完整的工作或作業名稱相符。「*」是萬用字元,可比對 0 個或多個字元。minCreationTimemaxCreationTime 應為時間戳記,並以 RFC 3339 格式編碼為字串。transferStatuses 的有效值不區分大小寫:IN_PROGRESSPAUSEDSUCCESSFAILEDABORTED

page_size

int32

清單頁面大小。允許的最大值為 256。

page_token

string

清單頁面憑證。

ListOperationsResponse

Operations.ListOperations 的回應訊息。

欄位
operations[]

Operation

符合要求中指定篩選器的作業清單。

next_page_token

string

標準清單下一頁憑證。

作業

這個資源表示屬於網路 API 呼叫結果的長時間執行作業。

欄位
name

string

伺服器指派的專屬名稱。name 的格式為 transferOperations/some/unique/name

metadata

Any

代表轉移作業物件。如要要求 TransferOperation 物件,請使用 transferOperations.get

done

bool

如果值為 false,代表作業仍在執行中。如果值為 true,代表作業已執行完畢,系統會顯示 errorresponse 的執行結果。

聯集欄位 result。這是作業的執行結果,可能為 error,或是有效的 response。如果 done == false,系統不會將結果設定為 error,也不會設定為 response。如果 done == true,系統會將結果設定為 errorresponse 其中之一。部分服務可能不會提供結果。result 只能是下列其中一個設定:
error

Status

作業失敗或取消時顯示的錯誤結果。

response

Any

作業成功時的一般回應。如果原始方法在執行成功時沒有傳回資料 (例如 Delete),則回應為 google.protobuf.Empty。如果原始方法是標準的 Get/Create/Update,回應則應該為資源。如果是其他方法,回應必須包含類型 XxxResponse,其中 Xxx 是原始方法的名稱。舉例來說,如果原始方法的名稱為 TakeSnapshot(),您就能推測出回應類型應該是 TakeSnapshotResponse