- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个调用外部 API 的查询 IGetHamburgers
。我已经在我的 DI 容器中将 IGetHamburgers
的实现注册为 Singleton。我使用 Polly 作为断路器,如果两个请求失败,电路将打开。
我的目标是所有对 Hamburger api 的调用都应该通过同一个断路器,如果 GetHamburgers 失败,那么所有其他调用也应该失败。
我应该如何使用我的保单?我是否应该将我的政策注册为这样的字段:
private Policy _policy;
private Policy Policy
{
get
{
if(this_policy != null)
{
return this_policy;
}
this._policy = Policy
.Handle<Exception>()
.CircuitBreaker(2, TimeSpan.FromMinutes(1));
return this._policy;
}
}
public object Execute(.......)
{
return Policy.Execute(() => this.hamburgerQuery.GetHamburgers());
}
或
public object Execute(.......)
{
var breaker = Policy
.Handle<Exception>()
.CircuitBreaker(2, TimeSpan.FromMinutes(1));
return breaker.Execute(() => this.hamburgerQuery.GetHamburgers());
}
我想第一个选项是正确的方法,因为从那时起,Policy 对象将始终相同,并且可以跟踪异常计数和类似的东西。我的问题是,第二个选项是否也有效?我在 Pollys Github 上找到了很多样本/示例,但我找不到任何将 Polly 与 DI 和类似东西一起使用的“真实世界”示例?
最佳答案
I guess that the first option is the correct way since then the Policy object will always be the same and can keep track of the exception count and stuff like that.
正确。这在 Polly wiki here 中有描述。 .简而言之:
参见 this stackoverflow answer更广泛地讨论配置策略与它们的使用分开,通过 DI 将它们注入(inject)使用站点,以及在整个范围内重用相同实例(例如单例)与使用单独实例的效果(2017 年 6 月) ) 的 Polly 策略。
will option number two work as well?
否(相反的原因:每次调用都会创建一个单独的实例,因此不会与其他调用共享电路统计信息/状态)。
关于c# - Polly Policies 应该是单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44638856/
我无法理解 on-policy 方法(如 A3C )和 off-policy 方法(如 DDPG )之间的根本区别是什么。据我所知,无论行为策略如何,off-policy 方法都可以学习到最优策略。它
在我们的 ADX 集群中,表上没有分区策略和合并策略,但 adx 仍然创建范围。我很困惑它是如何工作的以及默认设置是什么。有谁知道这个吗? 此外,分区键的组合如何工作?例如我有 { "Partit
我最近在尝试本地上传图像时开始遇到此错误。不过,我以前不习惯收到错误。 S3 方面或代码方面没有任何变化。不过,上传在生产中仍然有效。我已经尝试了所有常见的方法,重新启动服务器,重新启动计算机,更改为
在 OPA 中,很清楚如何查询 condition AND condition : values := { "value1": { "a": "one" }, "value2":
我有一个自定义政策 // Policy: Management Group Level resource "azurerm_policy_definition" "only-deploy-in-eas
鉴于以下(为了论证而简化)docker-compose.yml文件: version: '3' services: postgres: image: fleetit-postgres
我是 OPA(开放策略代理)的新手,正在尝试使用 REST API/v1/policies/{id} 创建新策略。有用!但是,OPA 服务器将其保存到内存中,并且在重新启动后我的所有策略都被删除了。我
我想在 K8sPSPCapabilities 约束模板中将一个容器列入白名单,但我在使用 rego 语言时遇到了一些困难。我想禁止除特定容器之外的所有容器的 NET_RAW 功能。如果有人能指出我正确
S3 存储桶策略与其指定管理员的用户策略之间的关系是什么(或应该是什么)? 例如假设我新创建了一个存储桶: $ aws --profile admin --endpoint-url http://lo
我正在为我公司的网站添加 Content-Security-Policy-Report-Only 标题。在我研究它时,我发现一些页面已经设置了 Content-Security-Policy head
应Content-Security-Policy header 是在每个服务器响应(图像、CSS、JS 等)中还是仅在 text/html(PHP 脚本的 .html 或 HTML 输出)中? 最佳答
我的 https://my-site.com网站有一些类似下面的 html: 在控制台中,我得到这个错误: Refused to load media from 'blob:https://my-s
我收到这个错误,我不知道为什么,我包含的脚本有效? 并且错误仅在我加载子页面时出现。不是在我加载起始页时。 那么我做错了什么? The source list for Content Security
我想创建一个包含多个自定义 Azure 策略的 Azure 策略计划 我有以下自定义政策 # Azure Provider source and version being used terrafor
我们正在使用 Azure AD B2C(仍处于预览版)对我们的应用程序的客户进行身份验证。 我们将使用自定义 html 模板来实现登录体验和注册(使我们对 MS 内容之外的格式和链接拥有更多权力)。
我是 Istio 的新手。我正在使用 JWT 实现授权。有效的 JWT token 不会反射(reflect) DENY 操作。我添加了 JWT Payload and Authorization P
我想用 JUnit 和 Apache CXF 编写一个简单的集成测试来测试一些支持 WS-Security 的服务。当我尝试运行我的代码时: MyService myService = new myW
在 https://securityheaders.com 上测试我们的网站时,它表明我们缺少两个 header : 推荐人政策 功能政策 我们的站点是 Jira 8.3.1,它本身运行 Tomcat
我需要在数据类型“DateTime”的自定义策略中使用扩展属性。我将声明类型定义如下。 myAttrbute dateTime This is for
我的信任库中有服务器根证书,在设置 -Djavax.net.debug=all 后,我可以看到信任库已初始化并且受信任的证书在那里: trustStore is: test.truststore tr
我是一名优秀的程序员,十分优秀!