跳至主要內容

4.3 Saga事务协调器

linguicheng...大约 1 分钟

简介

Saga事务协调器主要是记录事务的执行日志和对失败事务进行重试。

安装依赖包

dotnet add package Wing.Saga.Server

dotnet add package Wing.RabbitMQ

dotnet add package Wing.Consul

dotnet add package FreeSql.Provider.SqlServer

Program代码

Headers 设置请求头(调用事务重试接口时,传递JWT认证Token)

using Wing;

var builder = WebApplication.CreateBuilder(args);

builder.Host.AddWing(builder => builder.AddConsul());

// Add services to the container.

builder.Services.AddControllers();

builder.Services.AddWing()
            .AddJwt()
            .AddPersistence(FreeSql.DataType.SqlServer)
            .AddEventBus()
            .AddSaga(new SagaOptions
            {
                Headers = () =>
                {
                    var token = $"Bearer {App.GetRequiredService<IAuth>().GetToken()}";
                    return new Dictionary<string, string> { { "Authorization", token } };
                }
            });

var app = builder.Build();

// Configure the HTTP request pipeline.

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

添加配置

Saga:RetrySeconds 重试失败事务间隔,单位:秒,默认5分钟

Saga:ReportUpdateTime 定时更新报表数据

{
  "Saga": {
    // 每隔多少秒重试失败事务 默认5分钟
    "RetrySeconds": 60,
    // 指定时间进行报表数据计算
    "ReportUpdateTime": "17:05"
  }
}

上次编辑于:
贡献者: linguicheng