La biblioteca de agentes asincrónicos proporciona varias funciones que permiten pasar mensajes entre componentes.
Estas funciones de paso de mensajes se usan con los distintos tipos de bloque de mensajes. Para más información sobre los tipos de bloque de mensajes definidos por el Runtime de simultaneidad, consulte Bloques de mensajes asincrónicos.
Secciones
En este tema se describen las siguientes funciones de paso de mensajes:
La función concurrency::send envía un mensaje al destino especificado de forma sincrónica y la función concurrency::asend lo envía al especificado de forma asincrónica. Las funciones send y asend esperan hasta que el destino indica que finalmente aceptará o rechazará el mensaje.
La función send espera hasta que el destino acepte o rechace el mensaje antes de que se devuelva. La función send devuelve true si el mensaje se entregó y false en caso contrario. Dado que la función send funciona de forma sincrónica, la función send espera a que el destino reciba el mensaje antes de que se devuelva.
Por el contrario, la función asend no espera a que el destino acepte o rechace el mensaje antes de que se devuelva. En su lugar, la función asend devuelve true si el destino acepta el mensaje y finalmente lo toma. De lo contrario, asend devuelve false para indicar que el destino rechazó el mensaje o pospuso la decisión sobre si se debe aceptar el mensaje.
Las funciones concurrency::receive y concurrency::try_receive leen datos de un origen determinado. La función receive espera a que los datos estén disponibles, mientras que la función try_receive vuelve inmediatamente.
Use la función receive cuando deba tener los datos para continuar. Use la función try_receive si no debe bloquear el contexto actual o no tiene que tener los datos para continuar.
En este módulo, obtendrá información sobre el agente de mensajes RabbitMQ y cómo puede usarlo para desacoplar microservicios y garantizar que se pueden comunicar de forma fiable. También verá cómo .NET Aspire facilita la integración con RabbitMQ.