Pregunta

NServiceBus proporciona un mecanismo de tiempo de espera. De nservicebus.com :

El método RequestTimeout en la base clase dice NServiceBus enviar una mensaje a otro punto extremo que se duradera mantener el tiempo para nosotros ... Hay una proceso que viene con NServiceBus se llama el director de tiempo de espera, que proporciona una implementación básica de esta funcionalidad.

Al acabar el tiempo, el Administrador de tiempo de espera envía un mensaje de vuelta a la saga causando su método de tiempo de espera para ser llamado con el mismo objeto de estado originalmente pasado.

A mi entender hay una posibilidad de que el tiempo de espera se activa a pesar de que el mensaje ha sido entregado al receptor (la respuesta consiguió en algún lugar pegado por ejemplo).

¿Cómo diseño mi solicitud de tal manera que mi solicitud se comportará correctamente sin tener en cuenta si el mensaje llegó al receptor o no.

¿Fue útil?

Solución

Si el cliente envía un mensaje al servidor y luego solicita un tiempo, se almacenará el estado de la solicitud. Si el mensaje de tiempo de espera es recibida por el cliente antes de la respuesta del servidor a continuación, se puede comparar el estado devuelto por el tiempo de espera al estado actual y ver que el servidor no ha respondido y decidir qué hacer. Si la solicitud ya no es válida, es posible ignorar la respuesta. Si ese es el caso, es posible que desea buscar en el atributo "TimeToBeReceived" para el mensaje de servidor. Se tirará mensajes que no pueden recibir en el tiempo designado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top