Files
BuYuHouDuan/UserSrc/UserHost/Extension/CapExtension.cs
T

62 lines
2.2 KiB
C#
Raw Normal View History

2026-10-12 16:22:04 +08:00
using DotNetCore.CAP.Messages;
using UserService.User;
namespace UserHost.Extension
{
public static class CapExtension
{
public static IServiceCollection AddCap(this IServiceCollection services, IConfiguration configuration)
{
services.AddCap(x =>
{
x.UseDashboard();
x.UseRabbitMQ(rb =>
{
rb.HostName = configuration["CapConfig:Host"];
rb.UserName = configuration["CapConfig:UserName"];
rb.Password = configuration["CapConfig:Password"];
rb.VirtualHost = configuration["CapConfig:VirtualHost"];
rb.ExchangeName = "cap.exchange";
});
x.UsePostgreSql(op =>
{
op.ConnectionString = configuration["CapConfig:PGLogHost"];
op.Schema = "public";
});
x.SucceedMessageExpiredAfter = 7 * 24 * 3600;
x.FailedRetryCount = 5;
x.FailedRetryInterval = 10;
x.FailedThresholdCallback = ObjFailedThresholdCallback;
});
services.AddTransient<IUserMQService, UserMQService>();
services.AddTransient<UserService.Hubs.AdminNotifySubscriber>();
services.AddTransient<UserService.Hubs.LoginResultSubscriber>();
services.AddTransient<UserService.Hubs.ConfigChangedSubscriber>();
services.AddTransient<UserService.Hubs.KillAnnounceSubscriber>();
services.AddTransient<UserService.Hubs.AssetSyncFrontendSubscriber>();
services.AddTransient<CommonService.Lottery.LotteryPrizeHandler>();
services.AddTransient<CommonService.Lottery.LotteryPrizeSubscriber>();
return services;
}
private static async void ObjFailedThresholdCallback(FailedInfo failed)
{
var exception = failed.Message.Headers["cap-exception"] ?? string.Empty;
var name = failed.Message.GetName();
if (failed.MessageType == MessageType.Publish)
{
}
else
{
}
}
}
}