我的 IT 人员刚刚将我们的 MySQL 数据库更新到了一个新的集群,现在我收到了类似以下的暂时错误:
引发了一个异常,可能是由于暂时性故障。考虑通过将“EnableRetryOnFailure()”添加到“UseMySql”调用来启用瞬时错误恢复能力。
因此,经过研究,我添加了以下代码:
options.UseMySQL(Configuration.GetConnectionString(connectionString),
options => options.EnableRetryOnFailure
(
maxRetryCount: 10,
maxRetryDelay: TimeSpan.FromSeconds(30),
errorNumbersToAdd: null
)
);
});
然后,不幸的是导致了一个新错误:
错误 CS1061“MySQLDbContextOptionsBuilder”不包含“EnableRetryOnFailure”的定义并且没有可访问的扩展方法“EnableRetryOnFailure”
我不知道我是否缺少参考,但智能感知无济于事
所以,我做更多的研究并在这里找到信息https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html和这里https://entityframeworkcore.com/knowledge-base/57595183 /using-entity-framework-with-multiple-databases-and-providers-in-the-same-project--sql-server-and-mysql-关于使用 MySQL 中的这一行:
SetExecutionStrategy("MySql.Data.MySqlClient", () => new MySqlExecutionStrategy());
这也会引发错误。
有谁知道我如何使用 MySQL 实现连接弹性/重试逻辑?
.Net 5、MySQL 5.7、MySqlConnector 8.0.20