yambroskin

Untitled

Sep 9th, 2021
1,310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.20 KB | None | 0 0
  1. using EleWise.ELMA.MessageQueueRMQ.Settings;
  2. using EleWise.ELMA.Model.Entities;
  3. using RabbitMQ.Client.Events;
  4. using Yambr.ELMA.MessageQueueRMQ.Models;
  5.  
  6. namespace Yambr.ELMA.MessageQueueRMQ.Services
  7. {
  8.     /// <summary>
  9.     /// Сервис работы с очередью Rabbit
  10.     /// </summary>
  11.     // ReSharper disable once InconsistentNaming
  12.     public interface IRabbitMQService
  13.     {
  14.         /// <summary>
  15.         /// Проверить подключение
  16.         /// </summary>
  17.         void HealthCheck();
  18.         /// <summary>
  19.         /// Подключиться к Очереди
  20.         /// </summary>
  21.         void Init();
  22.         /// <summary>
  23.         /// Закрыть подключения
  24.         /// </summary>
  25.         void DisposeConnection();
  26.  
  27.         /// <summary>
  28.         /// Получить модель сообщения (тип сообщения)
  29.         /// </summary>
  30.         /// <param name="eventArgs"> Contains all the information about a message delivered
  31.         /// from an AMQP broker within the Basic content-class.
  32.         /// (содержит информацию о сообщении, в заголовках можно указать дополнительные параметры)
  33.         /// </param>
  34.         /// <param name="message">сообщение</param>
  35.         /// <returns></returns>
  36.         string GetModelFromMessage(BasicDeliverEventArgs eventArgs, string message);
  37.  
  38.         /// <summary>
  39.         /// Отправить сообщение немедленно в очередь
  40.         /// </summary>
  41.         /// <param name="setting">настройки очереди RMQSetting</param>
  42.         /// <param name="queueObject"> сообщение для отправки</param>
  43.         void SendMessage(RMQSetting setting, IQueueObject queueObject);
  44.  
  45.         /// <summary>
  46.         /// Отправить сообщение немедленно
  47.         /// в exchange очереди
  48.         /// </summary>
  49.         /// <param name="queueObject">сообщение для отправки</param>
  50.         void SendMessage(IQueueObject queueObject);
  51.  
  52.         /// <summary>
  53.         /// Отправить любой объект в MessageHandlerService
  54.         /// </summary>
  55.         /// <typeparam name="T">object</typeparam>
  56.         /// <param name="sendObject">Отправляемый объект</param>
  57.         /// <param name="model">Тип события на стороне MessageHandlerService</param>
  58.         void SendCustomMessageHandler<T>(T sendObject, string model);
  59.  
  60.         /// <summary>
  61.         /// Отправка объекта, с реализацией компонента ISendRabbitMessageHandler в MessageHandlerService
  62.         /// </summary>
  63.         /// <param name="sendObject"></param>
  64.         void SendMessage<T>(T sendObject);
  65.  
  66.         /// <summary>
  67.         /// Отправить сообщение после сохранения в базу данных (рекомендуется)
  68.         /// в exchange очереди
  69.         /// </summary>
  70.         /// <param name="queueObject">сообщение для отправки</param>
  71.         void SendMessageOnCommit(IQueueObject queueObject);
  72.     }
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment