Fermer

juin 16, 2021

Comment publier et abonner des messages à une file d'attente à l'aide de MSMQ


Maintenant que vous avez appris à installer la technologie MSMQ dans votre pile technologique, vous pouvez également configurer la publication et l'abonnement aux messages. Suivez les étapes ci-dessous pour configurer le code pour la publication, ce qui permet à l'application de l'expéditeur d'envoyer le message à la file d'attente.

Étape 1 : Créez l'application de l'éditeur. Pour cet exemple, j'ai utilisé l'application Rest API pour publier un message dans la file d'attente.

Ouvrez Visual Studiochoisissez « Créer un nouveau projet », sélectionnez « Application Web Asp.Net ( .Net Framework)", saisissez le nom du projet et choisissez "API Web".

Étape 2 : ajoutez la référence System.Messaging. Cliquez avec le bouton droit sur l'option « références » et sélectionnez « ajouter une référence ».

Étape 3 : Créez le contrôleur d'API. Pour cet exemple, j'ai utilisé le « OrderRefreshController ».

Étape 4 : Créez l'entité pour le message. Nous pouvons transmettre un message en tant qu'objet aux expéditeurs avec la structure ci-dessous avec l'attribut Serializable code .net à utiliser du côté de l'expéditeur.

Étape 5 : Écrivez la ligne de code ci-dessous pour envoyer le message à la file d'attente.

Étape 6 : exécutez la fonction ci-dessus à partir de la méthode POST de l'API Rest.

Étape 7 : Exécutez et testez l'application .

Abonnement à des messages à l'aide de MSMQ

Lorsque vous vous abonnez à un message, vous pouvez recevoir et lire le message de la file d'attente une fois le message publié dans la file d'attente.

Suivez le code ci-dessous pour implémenter l'abonnement à la file d'attente. file d'attente.

Étape 1 : Pour m'abonner aux messages, j'ai créé le programme informatique de service Windows qui fonctionne en arrière-plan de la machine Windows ou du serveur Windows afin que je puisse installer et démarrer sur Windows serveur. Cela le maintiendra en cours d'exécution et lira le message de la file d'attente en tant que message publié dans la file d'attente.

Étape 2 : Une fois l'application de service Windows créée, ajoutez le référence de service (System.Messaging).

Vous trouverez ci-dessous à quoi ressemblera la structure du projet de service Windows :

Remarque : J'ai renommé « Service1.cs » en « SubscribeOrderRefreshQueue.cs » pour suivre le nom convention. Vous pouvez utiliser n'importe quel nom standard conformément à la convention de dénomination de votre projet.

Étape 3 : Ajoutez le fichier de classe « QueueHelper », qui comprend les méthodes ci-dessous :

  • ConnectToQueue : utilisé pour se connecter au MSMQ
  • MyReceiveCompleted : responsable de la lecture du message lors de sa publication.

Reportez-vous à la capture d'écran ci-dessous pour l'extrait de code :

Étape 3 : Utilisez la méthode de le service Windows. Cliquez avec le bouton droit sur la classe de service « SubscribeOrderRefreshQueue.cs » et sélectionnez « afficher le code ». La « Méthode au démarrage » écrira le code et exécutera la méthode « MyReceiveCompleted. »

Remarque : J'ai ajouté la méthode « RunInteractive" afin que je puisse exécuter le service Windows en mode interactif (débogage).

Vous trouverez ci-dessous les modifications pour exécuter le service Windows en mode débogage :

  1. Cliquez avec le bouton droit sur le « projet de service Windows » et accédez à « propriétés ». Dans l'onglet applicationremplacez le type de sortie par "application console".

  1. Ajoutez le code de ligne ci-dessous dans le "cs file".

Vous êtes maintenant prêt à exécuter le service Windows et à tester les options de publication et d'abonnement. Voir la vidéo ci-dessous pour comprendre le flux de la publication des messages à l'abonnement/la lecture du message. Dans la vidéo, l'application Postman appelle l'application, qui place le message dans la file d'attente, et l'application de service Windows le recevra et le traitera. De cette façon, MSMQ agit en tant qu'intermédiaire et établit la communication entre les deux applications (source et destination) sans avoir de connexion directe entre elles.

Pour plus d'informations sur la configuration de ces services dans votre pile technologique, contactez nos experts du commerce aujourd'hui.

 

À propos de l'auteur

Nitin Garg est un consultant technique principal avec une expérience démontrée de travail dans le secteur des technologies de l'information et des services. Il a plus de 10 ans d'expérience dans le domaine du commerce électronique en utilisant la plate-forme comme (Insite Commerce & Znode commerce B2B) et une application basée sur .Net.

Plus de cet auteur




Source link