gpt4 book ai didi

mysql - .net core 2.1 MVC for MySQL 数据库中的瞬时故障处理

转载 作者:行者123 更新时间:2023-11-29 05:49:52 26 4
gpt4 key购买 nike

services.AddDbContext<MyContext>(options =>
{
options.UseSqlServer(mysqlConnection,
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.EnableRetryOnFailure(
maxRetryCount: 10,
maxRetryDelay: TimeSpan.FromSeconds(30),
errorNumbersToAdd: null);
});
});

我在以下位置找到了这段代码:

https://learn.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/implement-resilient-entity-framework-core-sql-connections

我的数据库是 MySQL 5.7

我把上面的代码改成了:

enter image description here

这意味着 EnableRetryOnFailure 不适用于 MySQL 数据库。我现在如何设置重试、延迟等策略?

此外,如果我尝试设置 ExecutionStrategy 函数,我会得到:

enter image description here

然后我尝试使用以下方法创建自己的策略:

public class MyStrategy: ExecutionStrategy
{
......
}

但是现在如何使用这个类呢?

最佳答案

为此有一个库: https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql

设置步骤:

  1. 从 NuGet 下载 Pomelo.EntityFrameworkCore.MySql

  2. 将这个使用添加到你的类中:

    使用 Pomelo.EntityFrameworkCore.MySql.Infrastructure;

  3. 将此添加到您的 ConfigureServices 方法中:

    services.AddDbContextPool<ApplicationDbContext>( 
    options => options.UseMySql("Server=localhost;Database=ef;User=root;Password=123456;",

    mySqlOptions =>
    {
    mySqlOptions.ServerVersion(new Version(5, 7, 17), ServerType.MySql)
    .EnableRetryOnFailure(
    maxRetryCount: 10,
    maxRetryDelay: TimeSpan.FromSeconds(30),
    errorNumbersToAdd: null);
    }
    ));

关于mysql - .net core 2.1 MVC for MySQL 数据库中的瞬时故障处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55432473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com