Files
2026-10-12 16:22:04 +08:00

51 lines
1.6 KiB
C#

using DotNetCore.CAP.Messages;
using AdminService.Tasks;
namespace AdminHost.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;
});
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
{
}
}
}
}