DurableOrchestrationContext class

Proporciona funcionalidad para el código de aplicación que implementa una operación de orquestación.

Propiedades

currentUtcDateTime

Obtiene la fecha y hora actuales de una manera segura para su uso por las funciones de orquestador.

Este valor de fecha y hora se deriva del historial de orquestaciones. Siempre devuelve el mismo valor en puntos específicos del código de la función de orquestador, lo que lo convierte en determinista y seguro para la reproducción.

customStatus

Estado personalizado de la orquestación

instanceId

Identificador de la instancia de orquestación actual.

El identificador de instancia se genera y se fija cuando se programa la función de orquestador. Puede generarse automáticamente, en cuyo caso tiene el formato GUID, o bien puede especificarse por el usuario con cualquier formato.

isReplaying

Obtiene un valor que indica si la función de orquestador se está reproduciendo actualmente.

Esta propiedad es útil cuando hay lógica que solo debe ejecutarse cuando la función de orquestador está no reproducción. Por ejemplo, ciertos tipos de registro de aplicaciones pueden volverse demasiado ruidosos cuando se duplican como parte de la reproducción de funciones de orquestador. El código del orquestador podría comprobar si se está reproduciéndose la función y, a continuación, emitir las instrucciones de registro cuando este valor es false.

parentInstanceId

Identificador de la orquestación primaria de la instancia de sub orquestación actual. El valor solo estará disponible en las suborquestaciones.

El identificador de instancia principal se genera y se fija cuando se programa la función de orquestador principal. Puede generarse automáticamente, en cuyo caso tiene el formato GUID, o bien puede especificarse por el usuario con cualquier formato.

Task

Punto de entrada para los métodos para controlar colecciones de acciones pendientes representadas por instancias de task. Para su uso en operaciones de paralelización.

Métodos

callActivity(string, unknown)

Programa una función de actividad denominada name para su ejecución.

callActivityWithRetry(string, RetryOptions, unknown)

Programa una función de actividad denominada name para su ejecución con opciones de reintento.

callEntity(EntityId, string, unknown)

Llama a una operación en una entidad, pasa un argumento y espera a que se complete.

callHttp(CallHttpOptions)

Programa una llamada HTTP duradera al punto de conexión especificado.

callSubOrchestrator(string, unknown, string)

Programa una función de orquestación denominada name para su ejecución.

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Programa una función de orquestador denominada name para su ejecución con opciones de reintento.

continueAsNew(unknown)

Reinicia la orquestación borrando su historial.

createTimer(Date)

Crea un temporizador duradero que expira en un momento especificado.

Todos los temporizadores duraderos creados con este método deben expirar o cancelarse mediante TimerTask.cancel() antes de que se complete la función de orquestador. De lo contrario, el marco subyacente mantendrá activa la instancia hasta que expire el temporizador.

getInput<T>()

Obtiene la entrada de la función de orquestador actual como un valor deserializado.

newGuid(string)

Crea un nuevo GUID que es seguro para la reproducción dentro de una orquestación o operación.

La implementación predeterminada de este método crea un UUID basado en nombres mediante el algoritmo de RFC 4122 §4.3. La entrada de nombre usada para generar este valor es una combinación del identificador de instancia de orquestación y un número de secuencia administrado internamente.

setCustomStatus(unknown)

Establece el estado serializable de JSON de la función de orquestador actual.

El valor de customStatusObject se serializa en JSON y estará disponible para las API de consulta de estado de orquestación. El valor JSON serializado no debe superar los 16 KB de texto codificado UTF-16.

El valor de customStatusObject serializado estará disponible para las API mencionadas anteriormente después de la siguiente instrucción yield o return.

signalEntity(EntityId, string, unknown)

Envíe una operación de señal a una entidad durable, pasando un argumento, sin esperar una respuesta. Una operación de fuego y olvido.

waitForExternalEvent(string)

Espera de forma asincrónica para que se genere un evento con el nombre name y devuelva los datos del evento.

Los clientes externos pueden generar eventos en una instancia de orquestación en espera mediante raiseEvent().

Detalles de las propiedades

currentUtcDateTime

Obtiene la fecha y hora actuales de una manera segura para su uso por las funciones de orquestador.

Este valor de fecha y hora se deriva del historial de orquestaciones. Siempre devuelve el mismo valor en puntos específicos del código de la función de orquestador, lo que lo convierte en determinista y seguro para la reproducción.

currentUtcDateTime: Date

Valor de propiedad

Date

customStatus

Estado personalizado de la orquestación

customStatus: unknown

Valor de propiedad

unknown

instanceId

Identificador de la instancia de orquestación actual.

El identificador de instancia se genera y se fija cuando se programa la función de orquestador. Puede generarse automáticamente, en cuyo caso tiene el formato GUID, o bien puede especificarse por el usuario con cualquier formato.

instanceId: string

Valor de propiedad

string

isReplaying

Obtiene un valor que indica si la función de orquestador se está reproduciendo actualmente.

Esta propiedad es útil cuando hay lógica que solo debe ejecutarse cuando la función de orquestador está no reproducción. Por ejemplo, ciertos tipos de registro de aplicaciones pueden volverse demasiado ruidosos cuando se duplican como parte de la reproducción de funciones de orquestador. El código del orquestador podría comprobar si se está reproduciéndose la función y, a continuación, emitir las instrucciones de registro cuando este valor es false.

isReplaying: boolean

Valor de propiedad

boolean

parentInstanceId

Identificador de la orquestación primaria de la instancia de sub orquestación actual. El valor solo estará disponible en las suborquestaciones.

El identificador de instancia principal se genera y se fija cuando se programa la función de orquestador principal. Puede generarse automáticamente, en cuyo caso tiene el formato GUID, o bien puede especificarse por el usuario con cualquier formato.

parentInstanceId: undefined | string

Valor de propiedad

undefined | string

Task

Punto de entrada para los métodos para controlar colecciones de acciones pendientes representadas por instancias de task. Para su uso en operaciones de paralelización.

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

Valor de propiedad

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

Detalles del método

callActivity(string, unknown)

Programa una función de actividad denominada name para su ejecución.

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

Parámetros

name

string

Nombre de la función de actividad a la que se va a llamar.

input

unknown

Entrada serializable json que se va a pasar a la función de actividad.

Devoluciones

Durable Task que se completa cuando la función de actividad llamada se completa o se produce un error.

callActivityWithRetry(string, RetryOptions, unknown)

Programa una función de actividad denominada name para su ejecución con opciones de reintento.

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

Parámetros

name

string

Nombre de la función de actividad a la que se va a llamar.

retryOptions
RetryOptions

Las opciones de reintento de la función de actividad.

input

unknown

Entrada serializable json que se va a pasar a la función de actividad.

Devoluciones

callEntity(EntityId, string, unknown)

Llama a una operación en una entidad, pasa un argumento y espera a que se complete.

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

Parámetros

entityId
EntityId

Entidad de destino.

operationName

string

Nombre de la operación.

operationInput

unknown

Entrada de la operación.

Devoluciones

callHttp(CallHttpOptions)

Programa una llamada HTTP duradera al punto de conexión especificado.

function callHttp(options: CallHttpOptions): Task

Parámetros

options
CallHttpOptions

El objeto de opciones HTTP

Devoluciones

callSubOrchestrator(string, unknown, string)

Programa una función de orquestación denominada name para su ejecución.

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

Parámetros

name

string

Nombre de la función de orquestador a la que se va a llamar.

input

unknown

Entrada serializable json para pasar a la función de orquestador.

instanceId

string

Identificador único que se va a usar para la instancia de sub orquestación. Si no se especifica instanceId, la extensión generará un identificador con el formato <calling orchestrator instance ID>:<#>

Devoluciones

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

Programa una función de orquestador denominada name para su ejecución con opciones de reintento.

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

Parámetros

name

string

Nombre de la función de orquestador a la que se va a llamar.

retryOptions
RetryOptions

Las opciones de reintento para la función de orquestador.

input

unknown

Entrada serializable json para pasar a la función de orquestador.

instanceId

string

Identificador único que se va a usar para la instancia de sub orquestación.

Devoluciones

continueAsNew(unknown)

Reinicia la orquestación borrando su historial.

function continueAsNew(input: unknown)

Parámetros

input

unknown

Datos serializables json con los que se va a volver a inicializar la instancia.

createTimer(Date)

Crea un temporizador duradero que expira en un momento especificado.

Todos los temporizadores duraderos creados con este método deben expirar o cancelarse mediante TimerTask.cancel() antes de que se complete la función de orquestador. De lo contrario, el marco subyacente mantendrá activa la instancia hasta que expire el temporizador.

function createTimer(fireAt: Date): TimerTask

Parámetros

fireAt

Date

Hora a la que debe expirar el temporizador.

Devoluciones

TimerTask que se completa cuando expira el temporizador duradero.

getInput<T>()

Obtiene la entrada de la función de orquestador actual como un valor deserializado.

function getInput<T>(): T

Devoluciones

T

newGuid(string)

Crea un nuevo GUID que es seguro para la reproducción dentro de una orquestación o operación.

La implementación predeterminada de este método crea un UUID basado en nombres mediante el algoritmo de RFC 4122 §4.3. La entrada de nombre usada para generar este valor es una combinación del identificador de instancia de orquestación y un número de secuencia administrado internamente.

function newGuid(input: string): string

Parámetros

input

string

se usa para generar el GUID único

Devoluciones

string

setCustomStatus(unknown)

Establece el estado serializable de JSON de la función de orquestador actual.

El valor de customStatusObject se serializa en JSON y estará disponible para las API de consulta de estado de orquestación. El valor JSON serializado no debe superar los 16 KB de texto codificado UTF-16.

El valor de customStatusObject serializado estará disponible para las API mencionadas anteriormente después de la siguiente instrucción yield o return.

function setCustomStatus(customStatusObject: unknown)

Parámetros

customStatusObject

unknown

Valor serializable json que se va a usar como estado personalizado de la función de orquestador.

signalEntity(EntityId, string, unknown)

Envíe una operación de señal a una entidad durable, pasando un argumento, sin esperar una respuesta. Una operación de fuego y olvido.

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

Parámetros

entityId
EntityId

Identificador de la entidad de destino.

operationName

string

Nombre de la operación.

operationInput

unknown

(opcional) entrada para la operación.

waitForExternalEvent(string)

Espera de forma asincrónica para que se genere un evento con el nombre name y devuelva los datos del evento.

Los clientes externos pueden generar eventos en una instancia de orquestación en espera mediante raiseEvent().

function waitForExternalEvent(name: string): Task

Parámetros

name

string

Nombre del evento externo que se va a esperar.

Devoluciones

tarea que se completa cuando se recibe un evento externo del nombre especificado