Operaciones de Dominio

Esta página enumera las diversas operaciones que están disponibles a nivel de dominio global como llamadas a métodos estáticos.

passivate Descargue un flujo de la memoria

Esto detendrá una instancia de flujo (incluso si no ha alcanzado un terminal state) para ahorrar algo de memoria, si se sabe que ha alcanzado un paso de larga duración, por ejemplo.

Tenga en cuenta que los mensajes dirigidos a esta instancia seguirán siendo entregados, pero IPF recargará el events de ese flujo desde el diario en lugar de tenerlos ya almacenados en memoria.

La llamada es:

XxxDomain.passivate("MyBehaviour|some-id-23149082");

Dónde Xxx es el nombre de la IPF solution conteniendo el flujo relevante, y MyBehaviour es el nombre del flujo en sí.

getAggregate: Obtenga el agregado de un flujo (state)

Para recuperar el actual state de una instancia de flujo, puede llamar:

XxxDomain.getAggregate("MyBehaviour|some-id-23149082");

Esto devolverá un CompletionStage<Aggregate> que se completa cuando se devuelve el agregado.

El Aggregate será del tipo MyBehaviourAggregate que contendrá:

  • El estado actual

  • La última failure reason code(s)/descripción(es)

  • Todo business data

  • Todo events

 No utilice `getAggregate` como parte del procesamiento de un flujo (por ejemplo, como parte de una implementación de adaptador).
Esto ralentizará el procesamiento de manera considerable, especialmente cuando esté bajo carga.

getAggregate`las llamadas son atendidas por el mismo `EventSourcedBehaviour actor que es responsable de persistir events. Dado que este es un actor tradicional, solo puede atender una solicitud a la vez.

Si la carga es lo suficientemente significativa, el actor se verá afectado por el servicio.getAggregate solicitudes en lugar de recibir comandos y persistir el resultado events.

Si encuentra que necesita utilizar getAggregate para obtener un conjunto de datos como parte de un adaptador, defina ese conjunto de datos como un Business Data Elemento en el Dominio Externo en su lugar. Esto lo hará disponible para su adaptador sin necesidad de usar getAggregate.

getStatus: Obtenga el estado de un flujo

Esta operación es similar a la anterior, pero solo devolverá el estado actual. También devuelve como un CompletionStage<AggregateStatus>.

Para recuperar el estado:

XxxDomain.getStatus("MyBehaviour|some-id-23149082");

abort: Detenga la ejecución de un flujo

Este comando toma un reason argumento y:

  • Establece el estado del flujo a ABORTED

  • Establece el estado resultante a Aborted

  • Publica un AbortedEvent con la razón especificada en la llamada

  • Cancela todo scheduled tareas relacionadas con este flujo

Para abortar un flujo:

XxxDomain.abort("MyBehaviour|some-id-23149082", "some special reason");
Una vez que un flujo ha sido abortado, no puede ser reanudado, incluso con el resume función a continuación.

resume: Continúe la ejecución de un flujo

Esta operación invocará el revitalización de la acción proceso para un flujo que intenta mover una transacción que parece estar atascada hacia la siguiente state.

Tenga en cuenta que esta operación no puede reanudar transacciones abortadas.

Para reanudar un flujo:

XxxDomain.resume("MyBehaviour|some-id-23149082");