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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
