Partilhar via


DurableOrchestrationContext class

Fornece funcionalidade para código de aplicativo implementando uma operação de orquestração.

Propriedades

currentUtcDateTime

Obtém a data/hora atual de uma forma segura para uso pelas funções do orquestrador.

Esse valor de data/hora é derivado do histórico de orquestração. Ele sempre retorna o mesmo valor em pontos específicos no código de função do orquestrador, tornando-o determinístico e seguro para reprodução.

customStatus

Status personalizado para a orquestração

instanceId

A ID da instância de orquestração atual.

O ID da instância é gerado e corrigido quando a função orchestrator é agendada. Ele pode ser gerado automaticamente, caso em que é formatado como um GUID, ou pode ser especificado pelo usuário com qualquer formato.

isReplaying

Obtém um valor que indica se a função orchestrator está sendo reproduzida no momento.

Essa propriedade é útil quando há lógica que precisa ser executada somente quando a função orchestrator não está replaying. Por exemplo, certos tipos de log de aplicativos podem se tornar muito barulhentos quando duplicados como parte da repetição da função do orquestrador. O código do orquestrador pode verificar se a função está sendo reproduzida e, em seguida, emitir as instruções de log quando esse valor for false.

parentInstanceId

A ID da orquestração pai da instância de suborquestração atual. O valor estará disponível apenas em sub-orquestrações.

O ID da instância pai é gerado e corrigido quando a função do orquestrador pai é agendada. Ele pode ser gerado automaticamente, caso em que é formatado como um GUID, ou pode ser especificado pelo usuário com qualquer formato.

Task

Ponto de entrada para métodos para lidar com coleções de ações pendentes representadas por instâncias de de tarefas. Para uso em operações de paralelização.

Métodos

callActivity(string, unknown)

Programa uma função de atividade chamada name para execução.

callActivityWithRetry(string, RetryOptions, unknown)

Programa uma função de atividade chamada name para execução com opções de repetição.

callEntity(EntityId, string, unknown)

Chama uma operação em uma entidade, passando um argumento, e aguarda que ela seja concluída.

callHttp(CallHttpOptions)

Programa uma chamada HTTP durável para o ponto de extremidade especificado.

callSubOrchestrator(string, unknown, string)

Programa uma função de orquestração chamada name para execução.

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Programa uma função de orquestrador chamada name para execução com opções de repetição.

continueAsNew(unknown)

Reinicia a orquestração limpando sua história.

createTimer(Date)

Cria um temporizador durável que expira em um momento especificado.

Todos os temporizadores duráveis criados usando esse método devem expirar ou ser cancelados usando TimerTask.cancel() antes que a função orchestrator seja concluída. Caso contrário, a estrutura subjacente manterá a instância ativa até que o temporizador expire.

getInput<T>()

Obtém a entrada da função orquestrador atual como um valor desserializado.

newGuid(string)

Cria um novo GUID que é seguro para reprodução dentro de uma orquestração ou operação.

A implementação padrão desse método cria um UUID baseado em nome usando o algoritmo da RFC 4122 §4.3. A entrada de nome usada para gerar esse valor é uma combinação do ID da instância de orquestração e um número de sequência gerenciado internamente.

setCustomStatus(unknown)

Define o status serializável em JSON da função orquestradora atual.

O valor customStatusObject é serializado para JSON e será disponibilizado para as APIs de consulta de status de orquestração. O valor JSON serializado não deve exceder 16 KB de texto codificado UTF-16.

O valor customStatusObject serializado será disponibilizado para as APIs acima mencionadas após a próxima instrução yield ou return.

signalEntity(EntityId, string, unknown)

Envie uma operação de sinal para uma Entidade Durável, passando um argumento, sem esperar por uma resposta. Uma operação de fogo e esquecimento.

waitForExternalEvent(string)

Aguarda de forma assíncrona que um evento seja gerado com o nome name e retorna os dados do evento.

Os clientes externos podem elevar eventos para uma instância de orquestração em espera usando raiseEvent().

Detalhes de Propriedade

currentUtcDateTime

Obtém a data/hora atual de uma forma segura para uso pelas funções do orquestrador.

Esse valor de data/hora é derivado do histórico de orquestração. Ele sempre retorna o mesmo valor em pontos específicos no código de função do orquestrador, tornando-o determinístico e seguro para reprodução.

currentUtcDateTime: Date

Valor de Propriedade

Date

customStatus

Status personalizado para a orquestração

customStatus: unknown

Valor de Propriedade

unknown

instanceId

A ID da instância de orquestração atual.

O ID da instância é gerado e corrigido quando a função orchestrator é agendada. Ele pode ser gerado automaticamente, caso em que é formatado como um GUID, ou pode ser especificado pelo usuário com qualquer formato.

instanceId: string

Valor de Propriedade

string

isReplaying

Obtém um valor que indica se a função orchestrator está sendo reproduzida no momento.

Essa propriedade é útil quando há lógica que precisa ser executada somente quando a função orchestrator não está replaying. Por exemplo, certos tipos de log de aplicativos podem se tornar muito barulhentos quando duplicados como parte da repetição da função do orquestrador. O código do orquestrador pode verificar se a função está sendo reproduzida e, em seguida, emitir as instruções de log quando esse valor for false.

isReplaying: boolean

Valor de Propriedade

boolean

parentInstanceId

A ID da orquestração pai da instância de suborquestração atual. O valor estará disponível apenas em sub-orquestrações.

O ID da instância pai é gerado e corrigido quando a função do orquestrador pai é agendada. Ele pode ser gerado automaticamente, caso em que é formatado como um GUID, ou pode ser especificado pelo usuário com qualquer formato.

parentInstanceId: undefined | string

Valor de Propriedade

undefined | string

Task

Ponto de entrada para métodos para lidar com coleções de ações pendentes representadas por instâncias de de tarefas. Para uso em operações de paralelização.

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

Valor de Propriedade

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

Detalhes de Método

callActivity(string, unknown)

Programa uma função de atividade chamada name para execução.

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

Parâmetros

name

string

O nome da função de atividade a ser chamada.

input

unknown

A entrada serializável por JSON para passar para a função de atividade.

Devoluções

Uma Tarefa Durável que é concluída quando a função de atividade chamada é concluída ou falha.

callActivityWithRetry(string, RetryOptions, unknown)

Programa uma função de atividade chamada name para execução com opções de repetição.

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

Parâmetros

name

string

O nome da função de atividade a ser chamada.

retryOptions
RetryOptions

As opções de repetição para a função de atividade.

input

unknown

A entrada serializável por JSON para passar para a função de atividade.

Devoluções

callEntity(EntityId, string, unknown)

Chama uma operação em uma entidade, passando um argumento, e aguarda que ela seja concluída.

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

Parâmetros

entityId
EntityId

A entidade de destino.

operationName

string

O nome da operação.

operationInput

unknown

A entrada para a operação.

Devoluções

callHttp(CallHttpOptions)

Programa uma chamada HTTP durável para o ponto de extremidade especificado.

function callHttp(options: CallHttpOptions): Task

Parâmetros

options
CallHttpOptions

O objeto de opções HTTP

Devoluções

callSubOrchestrator(string, unknown, string)

Programa uma função de orquestração chamada name para execução.

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

Parâmetros

name

string

O nome da função orquestradora a ser chamada.

input

unknown

A entrada serializável em JSON para passar para a função de orquestrador.

instanceId

string

Um ID exclusivo a ser usado para a instância de suborquestração. Se instanceId não for especificado, a extensão gerará um id no formato <calling orchestrator instance ID>:<#>

Devoluções

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Programa uma função de orquestrador chamada name para execução com opções de repetição.

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

Parâmetros

name

string

O nome da função orquestradora a ser chamada.

retryOptions
RetryOptions

As opções de repetição para a função orchestrator.

input

unknown

A entrada serializável em JSON para passar para a função de orquestrador.

instanceId

string

Um ID exclusivo a ser usado para a instância de suborquestração.

Devoluções

continueAsNew(unknown)

Reinicia a orquestração limpando sua história.

function continueAsNew(input: unknown)

Parâmetros

input

unknown

Os dados serializáveis em JSON com os quais reinicializar a instância.

createTimer(Date)

Cria um temporizador durável que expira em um momento especificado.

Todos os temporizadores duráveis criados usando esse método devem expirar ou ser cancelados usando TimerTask.cancel() antes que a função orchestrator seja concluída. Caso contrário, a estrutura subjacente manterá a instância ativa até que o temporizador expire.

function createTimer(fireAt: Date): TimerTask

Parâmetros

fireAt

Date

A hora em que o temporizador deve expirar.

Devoluções

Um TimerTask que é concluído quando o temporizador durável expira.

getInput<T>()

Obtém a entrada da função orquestrador atual como um valor desserializado.

function getInput<T>(): T

Devoluções

T

newGuid(string)

Cria um novo GUID que é seguro para reprodução dentro de uma orquestração ou operação.

A implementação padrão desse método cria um UUID baseado em nome usando o algoritmo da RFC 4122 §4.3. A entrada de nome usada para gerar esse valor é uma combinação do ID da instância de orquestração e um número de sequência gerenciado internamente.

function newGuid(input: string): string

Parâmetros

input

string

usado para gerar o GUID exclusivo

Devoluções

string

setCustomStatus(unknown)

Define o status serializável em JSON da função orquestradora atual.

O valor customStatusObject é serializado para JSON e será disponibilizado para as APIs de consulta de status de orquestração. O valor JSON serializado não deve exceder 16 KB de texto codificado UTF-16.

O valor customStatusObject serializado será disponibilizado para as APIs acima mencionadas após a próxima instrução yield ou return.

function setCustomStatus(customStatusObject: unknown)

Parâmetros

customStatusObject

unknown

O valor serializável por JSON a ser usado como status personalizado da função orchestrator.

signalEntity(EntityId, string, unknown)

Envie uma operação de sinal para uma Entidade Durável, passando um argumento, sem esperar por uma resposta. Uma operação de fogo e esquecimento.

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

Parâmetros

entityId
EntityId

ID da entidade de destino.

operationName

string

O nome da operação.

operationInput

unknown

(opcional) entrada para a operação.

waitForExternalEvent(string)

Aguarda de forma assíncrona que um evento seja gerado com o nome name e retorna os dados do evento.

Os clientes externos podem elevar eventos para uma instância de orquestração em espera usando raiseEvent().

function waitForExternalEvent(name: string): Task

Parâmetros

name

string

O nome do evento externo a ser aguardado.

Devoluções

uma Tarefa que é concluída quando um evento externo do nome especificado é recebido