Condividi tramite


DurableOrchestrationContext class

Fornisce funzionalità per il codice dell'applicazione che implementa un'operazione di orchestrazione.

Proprietà

currentUtcDateTime

Ottiene la data/ora corrente in modo sicuro per l'uso da parte delle funzioni dell'agente di orchestrazione.

Questo valore di data/ora è derivato dalla cronologia dell'orchestrazione. Restituisce sempre lo stesso valore in punti specifici nel codice della funzione dell'agente di orchestrazione, rendendolo deterministico e sicuro per la riproduzione.

customStatus

Stato personalizzato per l'orchestrazione

instanceId

ID dell'istanza di orchestrazione corrente.

L'ID istanza viene generato e corretto quando viene pianificata la funzione dell'agente di orchestrazione. Può essere generato automaticamente, nel qual caso viene formattato come GUID oppure può essere specificato dall'utente con qualsiasi formato.

isReplaying

Ottiene un valore che indica se la funzione dell'agente di orchestrazione sta riproducendo se stessa.

Questa proprietà è utile quando è presente una logica che deve essere eseguita solo quando la funzione dell'agente di orchestrazione è non riproduzione. Ad esempio, alcuni tipi di registrazione delle applicazioni possono diventare troppo rumorosi quando vengono duplicati come parte della riproduzione della funzione dell'agente di orchestrazione. Il codice dell'agente di orchestrazione può verificare se la funzione viene riprodotta e quindi rilasciare le istruzioni di log quando questo valore è false.

parentInstanceId

ID dell'orchestrazione padre dell'istanza di orchestrazione secondaria corrente. Il valore sarà disponibile solo nelle sotto orchestrazioni.

L'ID istanza padre viene generato e corretto quando viene pianificata la funzione dell'agente di orchestrazione padre. Può essere generato automaticamente, nel qual caso viene formattato come GUID oppure può essere specificato dall'utente con qualsiasi formato.

Task

Punto di ingresso per i metodi per gestire le raccolte di azioni in sospeso rappresentate da istanze di Task. Per l'uso nelle operazioni di parallelizzazione.

Metodi

callActivity(string, unknown)

Pianifica una funzione di attività denominata name per l'esecuzione.

callActivityWithRetry(string, RetryOptions, unknown)

Pianifica una funzione di attività denominata name per l'esecuzione con opzioni di ripetizione dei tentativi.

callEntity(EntityId, string, unknown)

Chiama un'operazione su un'entità, passando un argomento e attende il completamento.

callHttp(CallHttpOptions)

Pianifica una chiamata HTTP durevole all'endpoint specificato.

callSubOrchestrator(string, unknown, string)

Pianifica una funzione di orchestrazione denominata name per l'esecuzione.

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Pianifica una funzione dell'agente di orchestrazione denominata name per l'esecuzione con opzioni di ripetizione dei tentativi.

continueAsNew(unknown)

Riavvia l'orchestrazione cancellandone la cronologia.

createTimer(Date)

Crea un timer durevole che scade in un momento specificato.

Tutti i timer durevoli creati con questo metodo devono scadere o essere annullati usando TimerTask.cancel() prima del completamento della funzione dell'agente di orchestrazione. In caso contrario, il framework sottostante manterrà attiva l'istanza fino alla scadenza del timer.

getInput<T>()

Ottiene l'input della funzione dell'agente di orchestrazione corrente come valore deserializzato.

newGuid(string)

Crea un nuovo GUID sicuro per la riproduzione all'interno di un'orchestrazione o di un'operazione.

L'implementazione predefinita di questo metodo crea un UUID basato sul nome usando l'algoritmo RFC 4122 §4.3. L'input del nome usato per generare questo valore è una combinazione dell'ID istanza di orchestrazione e di un numero di sequenza gestito internamente.

setCustomStatus(unknown)

Imposta lo stato serializzabile JSON della funzione dell'agente di orchestrazione corrente.

Il valore customStatusObject viene serializzato in JSON e verrà reso disponibile per le API di query sullo stato dell'orchestrazione. Il valore JSON serializzato non deve superare 16 KB di testo con codifica UTF-16.

Il valore customStatusObject serializzato verrà reso disponibile alle API indicate dopo l'istruzione yield o return successiva.

signalEntity(EntityId, string, unknown)

Inviare un'operazione di segnale a un'entità durevole, passando un argomento, senza attendere una risposta. Operazione fire-and-forget.

waitForExternalEvent(string)

Attende in modo asincrono la generazione di un evento con il nome name e restituisce i dati dell'evento.

I client esterni possono generare eventi a un'istanza di orchestrazione in attesa usando raiseEvent().

Dettagli proprietà

currentUtcDateTime

Ottiene la data/ora corrente in modo sicuro per l'uso da parte delle funzioni dell'agente di orchestrazione.

Questo valore di data/ora è derivato dalla cronologia dell'orchestrazione. Restituisce sempre lo stesso valore in punti specifici nel codice della funzione dell'agente di orchestrazione, rendendolo deterministico e sicuro per la riproduzione.

currentUtcDateTime: Date

Valore della proprietà

Date

customStatus

Stato personalizzato per l'orchestrazione

customStatus: unknown

Valore della proprietà

unknown

instanceId

ID dell'istanza di orchestrazione corrente.

L'ID istanza viene generato e corretto quando viene pianificata la funzione dell'agente di orchestrazione. Può essere generato automaticamente, nel qual caso viene formattato come GUID oppure può essere specificato dall'utente con qualsiasi formato.

instanceId: string

Valore della proprietà

string

isReplaying

Ottiene un valore che indica se la funzione dell'agente di orchestrazione sta riproducendo se stessa.

Questa proprietà è utile quando è presente una logica che deve essere eseguita solo quando la funzione dell'agente di orchestrazione è non riproduzione. Ad esempio, alcuni tipi di registrazione delle applicazioni possono diventare troppo rumorosi quando vengono duplicati come parte della riproduzione della funzione dell'agente di orchestrazione. Il codice dell'agente di orchestrazione può verificare se la funzione viene riprodotta e quindi rilasciare le istruzioni di log quando questo valore è false.

isReplaying: boolean

Valore della proprietà

boolean

parentInstanceId

ID dell'orchestrazione padre dell'istanza di orchestrazione secondaria corrente. Il valore sarà disponibile solo nelle sotto orchestrazioni.

L'ID istanza padre viene generato e corretto quando viene pianificata la funzione dell'agente di orchestrazione padre. Può essere generato automaticamente, nel qual caso viene formattato come GUID oppure può essere specificato dall'utente con qualsiasi formato.

parentInstanceId: undefined | string

Valore della proprietà

undefined | string

Task

Punto di ingresso per i metodi per gestire le raccolte di azioni in sospeso rappresentate da istanze di Task. Per l'uso nelle operazioni di parallelizzazione.

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

Valore della proprietà

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

Dettagli metodo

callActivity(string, unknown)

Pianifica una funzione di attività denominata name per l'esecuzione.

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

Parametri

name

string

Nome della funzione di attività da chiamare.

input

unknown

Input serializzabile JSON da passare alla funzione di attività.

Restituisce

Attività durevole che viene completata quando la funzione attività chiamata viene completata o ha esito negativo.

callActivityWithRetry(string, RetryOptions, unknown)

Pianifica una funzione di attività denominata name per l'esecuzione con opzioni di ripetizione dei tentativi.

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

Parametri

name

string

Nome della funzione di attività da chiamare.

retryOptions
RetryOptions

Opzioni di ripetizione dei tentativi per la funzione dell'attività.

input

unknown

Input serializzabile JSON da passare alla funzione di attività.

Restituisce

callEntity(EntityId, string, unknown)

Chiama un'operazione su un'entità, passando un argomento e attende il completamento.

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

Parametri

entityId
EntityId

Entità di destinazione.

operationName

string

Nome dell'operazione.

operationInput

unknown

Input per l'operazione.

Restituisce

callHttp(CallHttpOptions)

Pianifica una chiamata HTTP durevole all'endpoint specificato.

function callHttp(options: CallHttpOptions): Task

Parametri

options
CallHttpOptions

Oggetto opzioni HTTP

Restituisce

callSubOrchestrator(string, unknown, string)

Pianifica una funzione di orchestrazione denominata name per l'esecuzione.

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

Parametri

name

string

Nome della funzione dell'agente di orchestrazione da chiamare.

input

unknown

Input serializzabile JSON da passare alla funzione dell'agente di orchestrazione.

instanceId

string

ID univoco da usare per l'istanza di orchestrazione secondaria. Se instanceId non viene specificato, l'estensione genererà un ID nel formato <calling orchestrator instance ID>:<#>

Restituisce

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Pianifica una funzione dell'agente di orchestrazione denominata name per l'esecuzione con opzioni di ripetizione dei tentativi.

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

Parametri

name

string

Nome della funzione dell'agente di orchestrazione da chiamare.

retryOptions
RetryOptions

Opzioni di ripetizione dei tentativi per la funzione dell'agente di orchestrazione.

input

unknown

Input serializzabile JSON da passare alla funzione dell'agente di orchestrazione.

instanceId

string

ID univoco da usare per l'istanza di orchestrazione secondaria.

Restituisce

continueAsNew(unknown)

Riavvia l'orchestrazione cancellandone la cronologia.

function continueAsNew(input: unknown)

Parametri

input

unknown

Dati serializzabili JSON con cui inizializzare nuovamente l'istanza.

createTimer(Date)

Crea un timer durevole che scade in un momento specificato.

Tutti i timer durevoli creati con questo metodo devono scadere o essere annullati usando TimerTask.cancel() prima del completamento della funzione dell'agente di orchestrazione. In caso contrario, il framework sottostante manterrà attiva l'istanza fino alla scadenza del timer.

function createTimer(fireAt: Date): TimerTask

Parametri

fireAt

Date

Ora di scadenza del timer.

Restituisce

TimerTask che viene completato alla scadenza del timer durevole.

getInput<T>()

Ottiene l'input della funzione dell'agente di orchestrazione corrente come valore deserializzato.

function getInput<T>(): T

Restituisce

T

newGuid(string)

Crea un nuovo GUID sicuro per la riproduzione all'interno di un'orchestrazione o di un'operazione.

L'implementazione predefinita di questo metodo crea un UUID basato sul nome usando l'algoritmo RFC 4122 §4.3. L'input del nome usato per generare questo valore è una combinazione dell'ID istanza di orchestrazione e di un numero di sequenza gestito internamente.

function newGuid(input: string): string

Parametri

input

string

usato per generare il GUID univoco

Restituisce

string

setCustomStatus(unknown)

Imposta lo stato serializzabile JSON della funzione dell'agente di orchestrazione corrente.

Il valore customStatusObject viene serializzato in JSON e verrà reso disponibile per le API di query sullo stato dell'orchestrazione. Il valore JSON serializzato non deve superare 16 KB di testo con codifica UTF-16.

Il valore customStatusObject serializzato verrà reso disponibile alle API indicate dopo l'istruzione yield o return successiva.

function setCustomStatus(customStatusObject: unknown)

Parametri

customStatusObject

unknown

Valore serializzabile JSON da usare come stato personalizzato della funzione dell'agente di orchestrazione.

signalEntity(EntityId, string, unknown)

Inviare un'operazione di segnale a un'entità durevole, passando un argomento, senza attendere una risposta. Operazione fire-and-forget.

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

Parametri

entityId
EntityId

ID dell'entità di destinazione.

operationName

string

Nome dell'operazione.

operationInput

unknown

(facoltativo) input per l'operazione.

waitForExternalEvent(string)

Attende in modo asincrono la generazione di un evento con il nome name e restituisce i dati dell'evento.

I client esterni possono generare eventi a un'istanza di orchestrazione in attesa usando raiseEvent().

function waitForExternalEvent(name: string): Task

Parametri

name

string

Nome dell'evento esterno da attendere.

Restituisce

Un'attività che viene completata quando viene ricevuto un evento esterno del nome specificato