DurableOrchestrationContext class

提供實作協調流程作業的應用程式程式代碼功能。

屬性

currentUtcDateTime

以協調器函式安全使用的方式取得目前的日期/時間。

這個日期/時間值衍生自協調流程歷程記錄。 它一律會在協調器函式程式代碼中的特定點傳回相同的值,使其具決定性且安全重新執行。

customStatus

協調流程的自定義狀態

instanceId

目前協調流程實例的標識碼。

當協調器函式排程時,會產生實例標識碼並修正。 它可以自動產生,在此情況下,它會格式化為 GUID,也可以以任何格式指定使用者。

isReplaying

取得值,指出協調器函式目前是否正在重新執行本身。

只有當協調器函式 重新執行時,才需要執行的邏輯時,這個屬性就很有用。 例如,當重複做為協調器函式重新執行時,某些類型的應用程式記錄可能會變得太吵鬧。 協調器程式代碼可以檢查函式是否正在重新執行,然後在此值 false時發出記錄語句。

parentInstanceId

目前子協調流程實例之父協調流程的標識碼。 值只能在子協調流程中使用。

父實例標識碼會在排程父協調器函式時產生並修正。 它可以自動產生,在此情況下,它會格式化為 GUID,也可以以任何格式指定使用者。

Task

處理工作 實例所表示之暫止動作集合的方法進入點。 用於平行處理作業。

方法

callActivity(string, unknown)

排程名為 name 的活動函式以供執行。

callActivityWithRetry(string, RetryOptions, unknown)

使用重試選項排程名為 name 的活動函式來執行。

callEntity(EntityId, string, unknown)

在實體上呼叫作業、傳遞自變數,並等候它完成。

callHttp(CallHttpOptions)

排程對指定端點的持久 HTTP 呼叫。

callSubOrchestrator(string, unknown, string)

排程名為 name 的協調流程函式以供執行。

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

使用重試選項排程名為 name 的協調器函式來執行。

continueAsNew(unknown)

清除協調流程的歷程記錄,以重新啟動協調流程。

createTimer(Date)

建立在指定時間到期的持久定時器。

使用這個方法建立的所有長期定時器都必須在協調器函式完成之前,使用 TimerTask.cancel() 過期或取消。 否則,基礎架構會讓實例保持運作,直到定時器到期為止。

getInput<T>()

取得目前協調器函式作為還原串行化值的輸入。

newGuid(string)

建立可在協調流程或作業內安全地重新執行的新 GUID。

此方法的默認實作會使用 RFC 4122 •4.3 中的演算法,建立以名稱為基礎的 UUID。 用來產生此值的名稱輸入是協調流程實例標識碼和內部管理序號的組合。

setCustomStatus(unknown)

設定目前協調器函式的 JSON 可串行化狀態。

customStatusObject 值會串行化為 JSON,並可供協調流程狀態查詢 API 使用。 串行化的 JSON 值不得超過 16 KB 的 UTF-16 編碼文字。

串行化 customStatusObject 值將在下一個 yieldreturn 語句之後提供給上述 API 使用。

signalEntity(EntityId, string, unknown)

將訊號作業傳送至 Durable Entity,傳遞自變數,而不需等待回應。 火災和忘記作業。

waitForExternalEvent(string)

以異步方式等候以名稱 name 引發事件,並傳回事件數據。

外部用戶端可以使用 raiseEvent(),將事件引發至等候的協調流程實例。

屬性詳細資料

currentUtcDateTime

以協調器函式安全使用的方式取得目前的日期/時間。

這個日期/時間值衍生自協調流程歷程記錄。 它一律會在協調器函式程式代碼中的特定點傳回相同的值,使其具決定性且安全重新執行。

currentUtcDateTime: Date

屬性值

Date

customStatus

協調流程的自定義狀態

customStatus: unknown

屬性值

unknown

instanceId

目前協調流程實例的標識碼。

當協調器函式排程時,會產生實例標識碼並修正。 它可以自動產生,在此情況下,它會格式化為 GUID,也可以以任何格式指定使用者。

instanceId: string

屬性值

string

isReplaying

取得值,指出協調器函式目前是否正在重新執行本身。

只有當協調器函式 重新執行時,才需要執行的邏輯時,這個屬性就很有用。 例如,當重複做為協調器函式重新執行時,某些類型的應用程式記錄可能會變得太吵鬧。 協調器程式代碼可以檢查函式是否正在重新執行,然後在此值 false時發出記錄語句。

isReplaying: boolean

屬性值

boolean

parentInstanceId

目前子協調流程實例之父協調流程的標識碼。 值只能在子協調流程中使用。

父實例標識碼會在排程父協調器函式時產生並修正。 它可以自動產生,在此情況下,它會格式化為 GUID,也可以以任何格式指定使用者。

parentInstanceId: undefined | string

屬性值

undefined | string

Task

處理工作 實例所表示之暫止動作集合的方法進入點。 用於平行處理作業。

Task: { all: (tasks: Task[]) => Task, any: (tasks: Task[]) => Task }

屬性值

{ all: (tasks: Task[]) => Task, any: (tasks: Task[]) => Task }

方法詳細資料

callActivity(string, unknown)

排程名為 name 的活動函式以供執行。

function callActivity(name: string, input?: unknown): Task

參數

name

string

要呼叫的活動函式名稱。

input

unknown

要傳遞至活動函式的 JSON 可串行化輸入。

傳回

在呼叫的活動函式完成或失敗時完成的永久性工作。

callActivityWithRetry(string, RetryOptions, unknown)

使用重試選項排程名為 name 的活動函式來執行。

function callActivityWithRetry(name: string, retryOptions: RetryOptions, input?: unknown): Task

參數

name

string

要呼叫的活動函式名稱。

retryOptions
RetryOptions

活動函式的重試選項。

input

unknown

要傳遞至活動函式的 JSON 可串行化輸入。

傳回

callEntity(EntityId, string, unknown)

在實體上呼叫作業、傳遞自變數,並等候它完成。

function callEntity(entityId: EntityId, operationName: string, operationInput?: unknown): Task

參數

entityId
EntityId

目標實體。

operationName

string

作業的名稱。

operationInput

unknown

作業的輸入。

傳回

callHttp(CallHttpOptions)

排程對指定端點的持久 HTTP 呼叫。

function callHttp(options: CallHttpOptions): Task

參數

options
CallHttpOptions

HTTP 選項物件

傳回

callSubOrchestrator(string, unknown, string)

排程名為 name 的協調流程函式以供執行。

function callSubOrchestrator(name: string, input?: unknown, instanceId?: string): Task

參數

name

string

要呼叫的協調器函式名稱。

input

unknown

要傳遞至協調器函式的 JSON 可串行化輸入。

instanceId

string

用於子協調流程實例的唯一標識符。 如果未指定 instanceId,擴充功能會以格式產生標識符 <calling orchestrator instance ID>:<#>

傳回

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

使用重試選項排程名為 name 的協調器函式來執行。

function callSubOrchestratorWithRetry(name: string, retryOptions: RetryOptions, input?: unknown, instanceId?: string): Task

參數

name

string

要呼叫的協調器函式名稱。

retryOptions
RetryOptions

協調器函式的重試選項。

input

unknown

要傳遞至協調器函式的 JSON 可串行化輸入。

instanceId

string

用於子協調流程實例的唯一標識符。

傳回

continueAsNew(unknown)

清除協調流程的歷程記錄,以重新啟動協調流程。

function continueAsNew(input: unknown)

參數

input

unknown

要重新初始化 實例的 JSON 可串行化數據。

createTimer(Date)

建立在指定時間到期的持久定時器。

使用這個方法建立的所有長期定時器都必須在協調器函式完成之前,使用 TimerTask.cancel() 過期或取消。 否則,基礎架構會讓實例保持運作,直到定時器到期為止。

function createTimer(fireAt: Date): TimerTask

參數

fireAt

Date

定時器到期的時間。

傳回

定時器到期時完成的 TimerTask。

getInput<T>()

取得目前協調器函式作為還原串行化值的輸入。

function getInput<T>(): T

傳回

T

newGuid(string)

建立可在協調流程或作業內安全地重新執行的新 GUID。

此方法的默認實作會使用 RFC 4122 •4.3 中的演算法,建立以名稱為基礎的 UUID。 用來產生此值的名稱輸入是協調流程實例標識碼和內部管理序號的組合。

function newGuid(input: string): string

參數

input

string

用來產生唯一 GUID

傳回

string

setCustomStatus(unknown)

設定目前協調器函式的 JSON 可串行化狀態。

customStatusObject 值會串行化為 JSON,並可供協調流程狀態查詢 API 使用。 串行化的 JSON 值不得超過 16 KB 的 UTF-16 編碼文字。

串行化 customStatusObject 值將在下一個 yieldreturn 語句之後提供給上述 API 使用。

function setCustomStatus(customStatusObject: unknown)

參數

customStatusObject

unknown

JSON 可串行化值,用來作為協調器函式的自定義狀態。

signalEntity(EntityId, string, unknown)

將訊號作業傳送至 Durable Entity,傳遞自變數,而不需等待回應。 火災和忘記作業。

function signalEntity(entityId: EntityId, operationName: string, operationInput?: unknown)

參數

entityId
EntityId

目標實體的標識碼。

operationName

string

作業的名稱。

operationInput

unknown

(選擇性)作業的輸入。

waitForExternalEvent(string)

以異步方式等候以名稱 name 引發事件,並傳回事件數據。

外部用戶端可以使用 raiseEvent(),將事件引發至等候的協調流程實例。

function waitForExternalEvent(name: string): Task

參數

name

string

要等候的外部事件名稱。

傳回

收到指定名稱的外部事件時完成的工作