gpt4 book ai didi

entity-framework-core - 配置 RetryOnFailure 时,maxRetryDelay 参数是什么

转载 作者:行者123 更新时间:2023-12-03 16:03:53 25 4
gpt4 key购买 nike

我正在使用 Entity Framework Core 2.2,我决定关注一些博客 sugestion 并启用失败重试:

services.AddDbContext<MyDbContext>( options =>
options.UseSqlServer(Configurations["ConnectionString"]),
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.EnableRetryOnFailure(
maxRetryCount: 10,
maxRetryDelay: TimeSpan.FromSeconds(5),
errorNumbersToAdd: null);
});

我的问题是什么是 maxRetryDelay论据?
我希望它是重试之间的延迟时间,但这个名字暗示了它的最大时间,这是否意味着我可以间隔 1 秒进行 10 次重试,而不是我想要的间隔 5 秒?

最佳答案

重试之间的延迟 is randomized不超过 maxRetryDelay 指定的值.

这样做是为了避免同时发生多次重试并使服务器不堪重负。想象一下,例如,对 Web 服务的 10K 请求由于网络问题而失败,并在 15 秒后同时重试。数据库服务器会突然收到 15,000 次查询。

通过随机化延迟,重试分布在时间和客户端上。

每次重试的延迟由 ExecutionStragegy.GetNextDelay 计算. source显示这是一个随机指数退避。

默认SqlServerRetryingExecutionStrategy使用该实现。自定义重试策略可以使用不同的实现

关于entity-framework-core - 配置 RetryOnFailure 时,maxRetryDelay 参数是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55827106/

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