CommonLib/CommonLib.RabbitMQ/EasyNetQHelper.cs

(开头部分) 9KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace CommonLib.RabbitMQ
{
    using EasyNetQ;

    using global::RabbitMQ.Client;

    using System;
    using System.Collections.Generic;
    using System.Threading;
    using System.Threading.Tasks;

    public class EasyNetQHelper
    {
        private readonly IBus bus;

        public EasyNetQHelper(string connectionString)
        {
            if (string.IsNullOrEmpty(connectionString))
                throw new ArgumentNullException(nameof(connectionString));
            bus = RabbitHutch.CreateBus(connectionString);
        }

        public async Task PublishAsync<TMessage>(TMessage message, string topic = null)
            where TMessage : class
        {
            if (string.IsNullOrWhiteSpace(topic))
                await bus.PubSub.PublishAsync(message);
            else
                await bus.PubSub.PublishAsync(message, x => x.WithTopic(topic));
        }

        public async Task PublishAsync<TMessage>(List<TMessage> messages, string topic)
            where TMessage : class
        {
            foreach (var message in messages)
            {
                if (string.IsNullOrWhiteSpace(topic))
                    await bus.PubSub.PublishAsync(message);
                else
                    await bus.PubSub.PublishAsync(message, x => x.WithTopic(topic));
                Thread.Sleep(50);
            }
        }

        /// <summary>
        /// 给指定队列发送一条信息
        /// </summary>
        /// <param name="queue">队列名称</param>
        /// <param name="message">消息</param>
        public async Task SendAsync<TMessage>(string queue, TMessage message)
            where TMessage : class
        {
            await bus.SendReceive.SendAsync(queue, message);
        }

        /// <summary>
        /// 给指定队列批量发送信息
        /// </summary>
        /// <param name="queue">队列名称</param>
        /// <param name="messages">消息</param>
后面还有 181 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。