- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 ASP.NET Core 6 最小 API 中,我一直在使用 Azure 应用程序配置功能标志。我已经设置了功能标志配置,以便标志在 5 秒内过期。
builder.Configuration.AddAzureAppConfiguration(
options => options.UseFeatureFlags(opts => opts.CacheExpirationInterval = TimeSpan.FromSeconds(5)));
我还添加了 Azure 应用程序配置和功能管理服务
builder.Services.AddAzureAppConfiguration();
builder.Services.AddFeatureManagement();
并设置用法
app.UseAzureAppConfiguration();
我尝试了其中一个功能标志(如果使用下面的代码启用了该功能标志)
bool isServiceEnabled = await _featureManager.IsEnabledAsync(FeatureFlags.IsServiceEnabled);
起初它确实从应用程序配置中读取了正确的值,然后我尝试切换它并在缓存过期后调用 API,第一次调用 API 仍然显示旧值。只有在过期后第二次调用 API 时才会显示新值。
似乎第一个 API 调用仍然缓存了旧值。
我是不是错过了什么?我在设置功能标志时做错了什么吗?
最佳答案
这是设计使然。
以下代码将 AzureAppConfigurationRefreshMiddleware
添加到请求管道。
app.UseAzureAppConfiguration();
该中间件执行基于事件的刷新并具有以下代码。
public async Task InvokeAsync(HttpContext context)
{
foreach (var refresher in Refreshers)
{
_ = refresher.TryRefreshAsync();
}
// Call the next delegate/middleware in the pipeline
await _next(context).ConfigureAwait(false);
}
请注意,refresher.TryRefreshAsync();
没有 await
。因此,在刷新成功之前,您仍然会获取脏数据。
关于azure - 缓存过期后,IFeatureManager 缓存是否在第一次调用时未刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74303855/
我在 Azure 门户中有一个功能标志,可在 .NET Core Web 应用程序中的某些 Controller 中使用。 在运行时,它可以正确打开和关闭真实门户上的 FF。 我应该编写 2 个单元测
我在 Azure 门户中有一个功能标志,可在 .NET Core Web 应用程序中的某些 Controller 中使用。 在运行时,它可以正确打开和关闭真实门户上的 FF。 我应该编写 2 个单元测
在 ASP.NET Core 6 最小 API 中,我一直在使用 Azure 应用程序配置功能标志。我已经设置了功能标志配置,以便标志在 5 秒内过期。 builder.Configuration.A
我是一名优秀的程序员,十分优秀!