断路器模式的简单实现
python-circuit的Python项目详细描述
[![构建状态](https://travis-ci.org/edgeware/python-circuit.svg?branch=master)(https://travis ci.org/edgeware/python circuit)
根据michael t.nygard的《伟大的书》(release it)中的逻辑大纲设计的断路器!](http://www.amazon.com/release it production ready practical programmers/dp/0978739213)。
短期内。一段时间后,断路器将通过一个请求来探测对方是否感觉好一些。如果是,它将关闭电路并再次允许请求。否则,它将再次断开电路。
使用“context”方法选择要跟踪的对等点。
第一个参数用于标识对等方。使其成为某种
类型的字符串,因为它将用于标识日志中的对等方。
下面是一个如何使用断路器的小示例:
```python
import logging
import time
from circuit import circuit breakerset
circuit breakers=circuit breakerset(time.time,日志记录。getlogger(
“断路器”)
断路器。处理错误(值错误)
def fn(断路器):
尝试:
使用断路器。上下文('my-remote-peer'):
引发值错误('oh no')
除了断路器之外:
电路已打开,因此我们甚至没有尝试与远程服务通信。
raise
```
*` maxfail`(默认值3)--在一个时间单位内允许的秒数。
*`reset_timeout`(默认值10)--在
进入半开模式之前电路断开的秒数。
`circuit.circuitbreaker`类接受以下参数:
*`clock`--以秒为单位返回时间的可调用函数。
*`log`--用于日志记录的“logging.logger”对象。
*`error\u types`--被视为错误的错误类型列表。
*`maxfail`--在一个时间单位内允许的秒数。
*`重置“超时”--电路在进入半开模式之前断开的秒数。
*“时间单位”--采样秒数。
twisted support
注意
断路器仍然使用pythons标准日志框架。示例:
``python
import logger
logging.getlogger(
“断路器”)
```
(`twistedcircuitbreakerset`增加了对“defer.returnvalue`
的支持,后者在内部使用异常。)
许可证
版权所有2012 edgeware ab.
根据apache许可证2.0版(“许可证”)授权;
除非符合许可证的要求,否则您不得使用此文件。
您可以在
http://www.apache.org/licenses/license-2.0
获取许可证副本,除非适用法律要求或书面同意,否则根据许可证分发的软件将按“原样”分发,
无任何明示或暗示的保证或条件。
请参阅许可证,了解管辖许可的特定语言和许可证下的限制。
Hael Nygard,http://www.michaelnygard.com/,用于编写发行版!
概述断路器模式的书,http://www.edgeware.tv/,用于赞助
python circuit的开发。
根据michael t.nygard的《伟大的书》(release it)中的逻辑大纲设计的断路器!](http://www.amazon.com/release it production ready practical programmers/dp/0978739213)。
短期内。一段时间后,断路器将通过一个请求来探测对方是否感觉好一些。如果是,它将关闭电路并再次允许请求。否则,它将再次断开电路。
使用“context”方法选择要跟踪的对等点。
第一个参数用于标识对等方。使其成为某种
类型的字符串,因为它将用于标识日志中的对等方。
下面是一个如何使用断路器的小示例:
```python
import logging
import time
from circuit import circuit breakerset
circuit breakers=circuit breakerset(time.time,日志记录。getlogger(
“断路器”)
断路器。处理错误(值错误)
def fn(断路器):
尝试:
使用断路器。上下文('my-remote-peer'):
引发值错误('oh no')
除了断路器之外:
电路已打开,因此我们甚至没有尝试与远程服务通信。
raise
```
*` maxfail`(默认值3)--在一个时间单位内允许的秒数。
*`reset_timeout`(默认值10)--在
进入半开模式之前电路断开的秒数。
`circuit.circuitbreaker`类接受以下参数:
*`clock`--以秒为单位返回时间的可调用函数。
*`log`--用于日志记录的“logging.logger”对象。
*`error\u types`--被视为错误的错误类型列表。
*`maxfail`--在一个时间单位内允许的秒数。
*`重置“超时”--电路在进入半开模式之前断开的秒数。
*“时间单位”--采样秒数。
twisted support
注意
断路器仍然使用pythons标准日志框架。示例:
``python
import logger
logging.getlogger(
“断路器”)
```
(`twistedcircuitbreakerset`增加了对“defer.returnvalue`
的支持,后者在内部使用异常。)
许可证
版权所有2012 edgeware ab.
根据apache许可证2.0版(“许可证”)授权;
除非符合许可证的要求,否则您不得使用此文件。
您可以在
http://www.apache.org/licenses/license-2.0
获取许可证副本,除非适用法律要求或书面同意,否则根据许可证分发的软件将按“原样”分发,
无任何明示或暗示的保证或条件。
请参阅许可证,了解管辖许可的特定语言和许可证下的限制。
Hael Nygard,http://www.michaelnygard.com/,用于编写发行版!
概述断路器模式的书,http://www.edgeware.tv/,用于赞助
python circuit的开发。