Delen via


DurableOrchestrationContext class

Biedt functionaliteit voor toepassingscode voor het implementeren van een indelingsbewerking.

Eigenschappen

currentUtcDateTime

Hiermee haalt u de huidige datum/tijd op een manier op die veilig is voor gebruik door orchestratorfuncties.

Deze datum/tijd-waarde is afgeleid van de indelingsgeschiedenis. Deze retourneert altijd dezelfde waarde op specifieke punten in de orchestratorfunctiecode, waardoor deze deterministisch en veilig is voor opnieuw afspelen.

customStatus

Aangepaste status voor de indeling

instanceId

De id van het huidige indelingsexemplaar.

De exemplaar-id wordt gegenereerd en opgelost wanneer de orchestrator-functie is gepland. Het kan automatisch worden gegenereerd, in welk geval het is opgemaakt als een GUID, of kan door de gebruiker worden opgegeven met elke indeling.

isReplaying

Hiermee wordt een waarde opgehaald die aangeeft of de orchestratorfunctie momenteel opnieuw wordt afgespeeld.

Deze eigenschap is handig als er logica is die alleen moet worden uitgevoerd wanneer de orchestratorfunctie is niet opnieuw afspelen. Bepaalde typen toepassingslogboekregistratie kunnen bijvoorbeeld te luidruchtig worden wanneer ze worden gedupliceerd als onderdeel van het opnieuw afspelen van de orchestratorfunctie. De orchestratorcode kan controleren of de functie opnieuw wordt afgespeeld en vervolgens de logboekinstructies uitgeven wanneer deze waarde is false.

parentInstanceId

De id van de bovenliggende indeling van het huidige subindelingsexemplaar. De waarde is alleen beschikbaar in subindelingen.

De id van het bovenliggende exemplaar wordt gegenereerd en opgelost wanneer de bovenliggende orchestratorfunctie is gepland. Het kan automatisch worden gegenereerd, in welk geval het is opgemaakt als een GUID, of kan door de gebruiker worden opgegeven met elke indeling.

Task

Toegangspunt voor methoden voor het afhandelen van verzamelingen van in behandeling zijnde acties die worden vertegenwoordigd door Taak exemplaren. Voor gebruik in parallelle bewerkingen.

Methoden

callActivity(string, unknown)

Hiermee plant u een activiteitsfunctie met de naam name voor uitvoering.

callActivityWithRetry(string, RetryOptions, unknown)

Hiermee plant u een activiteitsfunctie met de naam name voor uitvoering met opties voor opnieuw proberen.

callEntity(EntityId, string, unknown)

Roept een bewerking aan op een entiteit, geeft een argument door en wacht tot deze is voltooid.

callHttp(CallHttpOptions)

Hiermee wordt een duurzame HTTP-aanroep naar het opgegeven eindpunt gepland.

callSubOrchestrator(string, unknown, string)

Hiermee plant u een indelingsfunctie met de naam name voor uitvoering.

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Hiermee plant u een orchestratorfunctie met de naam name voor uitvoering met opties voor opnieuw proberen.

continueAsNew(unknown)

Start de indeling opnieuw door de geschiedenis ervan te wissen.

createTimer(Date)

Hiermee maakt u een duurzame timer die op een bepaald tijdstip verloopt.

Alle duurzame timers die met deze methode zijn gemaakt, moeten verlopen of worden geannuleerd met behulp van TimerTask.cancel() voordat de orchestratorfunctie is voltooid. Anders blijft het onderliggende framework het exemplaar actief totdat de timer verloopt.

getInput<T>()

Hiermee haalt u de invoer van de huidige orchestratorfunctie op als een gedeserialiseerde waarde.

newGuid(string)

Hiermee maakt u een nieuwe GUID die veilig is voor opnieuw afspelen binnen een indeling of bewerking.

De standaardimplementatie van deze methode maakt een op naam gebaseerde UUID met behulp van het algoritme van RFC 4122 §4.3. De naaminvoer die wordt gebruikt om deze waarde te genereren, is een combinatie van de orchestration-exemplaar-id en een intern beheerd volgnummer.

setCustomStatus(unknown)

Hiermee stelt u de JSON-serialiseerbare status van de huidige orchestratorfunctie in.

De customStatusObject waarde wordt geserialiseerd naar JSON en wordt beschikbaar gesteld aan de api's van de indelingsstatusquery. De geserialiseerde JSON-waarde mag niet groter zijn dan 16 kB met UTF-16 gecodeerde tekst.

De geserialiseerde customStatusObject waarde wordt na de volgende yield of return-instructie beschikbaar gesteld aan de bovengenoemde API's.

signalEntity(EntityId, string, unknown)

Verzend een signaalbewerking naar een Durable Entity, waarbij een argument wordt doorgegeven zonder te wachten op een antwoord. Een brand-en-vergeet operatie.

waitForExternalEvent(string)

Wacht asynchroon tot een gebeurtenis wordt gegenereerd met de naam name en retourneert de gebeurtenisgegevens.

Externe clients kunnen gebeurtenissen naar een wachtend indelingsexemplaar genereren met behulp van raiseEvent().

Eigenschapdetails

currentUtcDateTime

Hiermee haalt u de huidige datum/tijd op een manier op die veilig is voor gebruik door orchestratorfuncties.

Deze datum/tijd-waarde is afgeleid van de indelingsgeschiedenis. Deze retourneert altijd dezelfde waarde op specifieke punten in de orchestratorfunctiecode, waardoor deze deterministisch en veilig is voor opnieuw afspelen.

currentUtcDateTime: Date

Waarde van eigenschap

Date

customStatus

Aangepaste status voor de indeling

customStatus: unknown

Waarde van eigenschap

unknown

instanceId

De id van het huidige indelingsexemplaar.

De exemplaar-id wordt gegenereerd en opgelost wanneer de orchestrator-functie is gepland. Het kan automatisch worden gegenereerd, in welk geval het is opgemaakt als een GUID, of kan door de gebruiker worden opgegeven met elke indeling.

instanceId: string

Waarde van eigenschap

string

isReplaying

Hiermee wordt een waarde opgehaald die aangeeft of de orchestratorfunctie momenteel opnieuw wordt afgespeeld.

Deze eigenschap is handig als er logica is die alleen moet worden uitgevoerd wanneer de orchestratorfunctie is niet opnieuw afspelen. Bepaalde typen toepassingslogboekregistratie kunnen bijvoorbeeld te luidruchtig worden wanneer ze worden gedupliceerd als onderdeel van het opnieuw afspelen van de orchestratorfunctie. De orchestratorcode kan controleren of de functie opnieuw wordt afgespeeld en vervolgens de logboekinstructies uitgeven wanneer deze waarde is false.

isReplaying: boolean

Waarde van eigenschap

boolean

parentInstanceId

De id van de bovenliggende indeling van het huidige subindelingsexemplaar. De waarde is alleen beschikbaar in subindelingen.

De id van het bovenliggende exemplaar wordt gegenereerd en opgelost wanneer de bovenliggende orchestratorfunctie is gepland. Het kan automatisch worden gegenereerd, in welk geval het is opgemaakt als een GUID, of kan door de gebruiker worden opgegeven met elke indeling.

parentInstanceId: undefined | string

Waarde van eigenschap

undefined | string

Task

Toegangspunt voor methoden voor het afhandelen van verzamelingen van in behandeling zijnde acties die worden vertegenwoordigd door Taak exemplaren. Voor gebruik in parallelle bewerkingen.

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

Waarde van eigenschap

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

Methodedetails

callActivity(string, unknown)

Hiermee plant u een activiteitsfunctie met de naam name voor uitvoering.

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

Parameters

name

string

De naam van de activiteitsfunctie die moet worden aangeroepen.

input

unknown

De JSON-serialiseerbare invoer die moet worden doorgegeven aan de activiteitsfunctie.

Retouren

Een duurzame taak die wordt voltooid wanneer de aangeroepen activiteitsfunctie is voltooid of mislukt.

callActivityWithRetry(string, RetryOptions, unknown)

Hiermee plant u een activiteitsfunctie met de naam name voor uitvoering met opties voor opnieuw proberen.

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

Parameters

name

string

De naam van de activiteitsfunctie die moet worden aangeroepen.

retryOptions
RetryOptions

De opties voor opnieuw proberen voor de activiteitsfunctie.

input

unknown

De JSON-serialiseerbare invoer die moet worden doorgegeven aan de activiteitsfunctie.

Retouren

callEntity(EntityId, string, unknown)

Roept een bewerking aan op een entiteit, geeft een argument door en wacht tot deze is voltooid.

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

Parameters

entityId
EntityId

De doelentiteit.

operationName

string

De naam van de bewerking.

operationInput

unknown

De invoer voor de bewerking.

Retouren

callHttp(CallHttpOptions)

Hiermee wordt een duurzame HTTP-aanroep naar het opgegeven eindpunt gepland.

function callHttp(options: CallHttpOptions): Task

Parameters

options
CallHttpOptions

Het HTTP-optiesobject

Retouren

callSubOrchestrator(string, unknown, string)

Hiermee plant u een indelingsfunctie met de naam name voor uitvoering.

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

Parameters

name

string

De naam van de orchestratorfunctie die moet worden aangeroepen.

input

unknown

De JSON-serialiseerbare invoer die moet worden doorgegeven aan de orchestratorfunctie.

instanceId

string

Een unieke id die moet worden gebruikt voor het subindelingsexemplaar. Als instanceId niet is opgegeven, genereert de extensie een id in de indeling <calling orchestrator instance ID>:<#>

Retouren

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Hiermee plant u een orchestratorfunctie met de naam name voor uitvoering met opties voor opnieuw proberen.

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

Parameters

name

string

De naam van de orchestratorfunctie die moet worden aangeroepen.

retryOptions
RetryOptions

De opties voor opnieuw proberen voor de orchestratorfunctie.

input

unknown

De JSON-serialiseerbare invoer die moet worden doorgegeven aan de orchestratorfunctie.

instanceId

string

Een unieke id die moet worden gebruikt voor het subindelingsexemplaar.

Retouren

continueAsNew(unknown)

Start de indeling opnieuw door de geschiedenis ervan te wissen.

function continueAsNew(input: unknown)

Parameters

input

unknown

De JSON-serialiseerbare gegevens om het exemplaar opnieuw te initialiseren.

createTimer(Date)

Hiermee maakt u een duurzame timer die op een bepaald tijdstip verloopt.

Alle duurzame timers die met deze methode zijn gemaakt, moeten verlopen of worden geannuleerd met behulp van TimerTask.cancel() voordat de orchestratorfunctie is voltooid. Anders blijft het onderliggende framework het exemplaar actief totdat de timer verloopt.

function createTimer(fireAt: Date): TimerTask

Parameters

fireAt

Date

Het tijdstip waarop de timer moet verlopen.

Retouren

Een TimerTask die wordt voltooid wanneer de duurzame timer verloopt.

getInput<T>()

Hiermee haalt u de invoer van de huidige orchestratorfunctie op als een gedeserialiseerde waarde.

function getInput<T>(): T

Retouren

T

newGuid(string)

Hiermee maakt u een nieuwe GUID die veilig is voor opnieuw afspelen binnen een indeling of bewerking.

De standaardimplementatie van deze methode maakt een op naam gebaseerde UUID met behulp van het algoritme van RFC 4122 §4.3. De naaminvoer die wordt gebruikt om deze waarde te genereren, is een combinatie van de orchestration-exemplaar-id en een intern beheerd volgnummer.

function newGuid(input: string): string

Parameters

input

string

wordt gebruikt om de unieke GUID te genereren

Retouren

string

setCustomStatus(unknown)

Hiermee stelt u de JSON-serialiseerbare status van de huidige orchestratorfunctie in.

De customStatusObject waarde wordt geserialiseerd naar JSON en wordt beschikbaar gesteld aan de api's van de indelingsstatusquery. De geserialiseerde JSON-waarde mag niet groter zijn dan 16 kB met UTF-16 gecodeerde tekst.

De geserialiseerde customStatusObject waarde wordt na de volgende yield of return-instructie beschikbaar gesteld aan de bovengenoemde API's.

function setCustomStatus(customStatusObject: unknown)

Parameters

customStatusObject

unknown

De JSON-serialiseerbare waarde die moet worden gebruikt als de aangepaste status van de orchestratorfunctie.

signalEntity(EntityId, string, unknown)

Verzend een signaalbewerking naar een Durable Entity, waarbij een argument wordt doorgegeven zonder te wachten op een antwoord. Een brand-en-vergeet operatie.

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

Parameters

entityId
EntityId

Id van de doelentiteit.

operationName

string

De naam van de bewerking.

operationInput

unknown

(optioneel) invoer voor de bewerking.

waitForExternalEvent(string)

Wacht asynchroon tot een gebeurtenis wordt gegenereerd met de naam name en retourneert de gebeurtenisgegevens.

Externe clients kunnen gebeurtenissen naar een wachtend indelingsexemplaar genereren met behulp van raiseEvent().

function waitForExternalEvent(name: string): Task

Parameters

name

string

De naam van de externe gebeurtenis die moet worden gewacht.

Retouren

een taak die wordt voltooid wanneer een externe gebeurtenis van de opgegeven naam wordt ontvangen