1. 重命名枚举项与实体字段,修正类型引用 2. 新增IsNull扩展方法与多项字符串处理扩展 3. 新增大量业务DTO、服务接口与枚举定义 4. 重构RabbitMQ服务实现,替换旧版消息队列组件 5. 优化签到服务的宠物喂养事务逻辑 6. 移除冗余的项目引用与旧版消息队列代码 7. 新增Excel导出、导入模板相关工具方法
57 lines
2.5 KiB
C#
57 lines
2.5 KiB
C#
using Microsoft.Extensions.Configuration;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
using Microsoft.Extensions.Options;
|
||
using RabbitMQ.Client;
|
||
|
||
namespace QYZH.InteractiveMagazine.Infrastructure.RabbitMQ
|
||
{
|
||
public static class RabbiteMQExtensions
|
||
{
|
||
/// <summary>
|
||
/// 初始化消息队列,并添加Publisher到IoC容器
|
||
/// </summary>
|
||
/// <remarks>从Configuration读取"RabbbitMQOptions配置项"</remarks>
|
||
public static IServiceCollection AddRabbitMQ(this IServiceCollection services, IConfiguration configuration)
|
||
{
|
||
var rabbitMqSection = configuration.GetSection("RabbitMq");
|
||
|
||
if (rabbitMqSection.Exists())
|
||
{
|
||
// 绑定RabbitMQ配置
|
||
services.Configure<RabbitMQOptions>(rabbitMqSection);
|
||
// 注册RabbitMQ连接工厂
|
||
services.AddSingleton<IRabbitMQConnection, RabbitMQConnection>(sp =>
|
||
{
|
||
var options = sp.GetRequiredService<IOptions<RabbitMQOptions>>().Value;
|
||
var factory = new ConnectionFactory()
|
||
{
|
||
HostName = options.HostName,
|
||
Port = options.Port,
|
||
UserName = options.UserName,
|
||
Password = options.Password,
|
||
VirtualHost = options.VirtualHost,
|
||
|
||
// 自动恢复配置
|
||
AutomaticRecoveryEnabled = true, // 启用自动恢复
|
||
NetworkRecoveryInterval = TimeSpan.FromSeconds(10), // 每10秒尝试重连
|
||
// 心跳检测
|
||
RequestedHeartbeat = TimeSpan.FromSeconds(10), // 60秒心跳
|
||
// 其他重要配置
|
||
TopologyRecoveryEnabled = true, // 恢复交换机、队列等拓扑结构
|
||
RequestedConnectionTimeout = TimeSpan.FromSeconds(30), // 连接超时
|
||
SocketReadTimeout = TimeSpan.FromSeconds(30), // 读取超时
|
||
SocketWriteTimeout = TimeSpan.FromSeconds(30) // 写入超时
|
||
};
|
||
return new RabbitMQConnection(factory);
|
||
});
|
||
|
||
// 添加RabbitMQService的服务注册
|
||
services.AddSingleton<IRabbitMQService, RabbitMQService>();
|
||
//services.AddHostedService<TerminalReportService>();
|
||
}
|
||
|
||
return services;
|
||
}
|
||
}
|
||
}
|