没有项目描述

pyhystrix的Python项目详细描述


#pyhystrix

一个用于修补请求包的库,以便在默认情况下添加以下功能:

-连接和读取超时
-连接失败时重试
-电路中断
-在请求头中添加唯一的“x-request-id”(如果未提供)

**注意:*:0.0.2支持python2.7和>;=0.0.3仅支持python3。

只需调用“init()`:

``python
import requests
import pyhystrix
requests.get(“http://abc.xyx”)//pyhystrix
pyhystrix.init()
requests.get(“http://abc.xyx”)//pyhystrix的任何功能都不附加到所有请求
```

设置以下env变量:
-`phy_connect_timeout`:连接超时(秒)
-`phy_read_timeout`:读取超时(秒)
-`phy_max_retries`:连接失败的最大重试次数
-`phy_circuit_fail_threshold`:打开电路后失败的请求数,同一url上的其他请求数不允许。
-`phy_circuit_alive_threshold`:打开电路使其半开的失败请求数(如下所述)
-`phy_circuit_delay`:打开电路半开的秒数。


2。请求本身的参数:
-`max_tries`(int):重写`phy_max_retries`,与之相关的一些规则如下:
-`max_tries=0`:将不会导致重试,在第一次失败时失败。
-如果为非“get”请求传递正值,如果接收到的状态为“status\u forcelist”,也将重试它们。
-“status\u forcelist”:http状态列表,如果返回的状态是其中之一,则重试。默认值为“get”上的“[500”。
-“timeout”:与[请求]中的超时相同(http://docs.python requests.org/en/master/user/advanced/“timeouts”)
-“backoff因子”:每次重试的延迟将受以下公式的影响:```{backoff factor}*(2^({total retries}-1))````。默认值=`0.5`sec

403])
```

-`put`和retry on response status=`500`或`501`

``python
request.put(“http://abc.xyz”,max\u tries=3,status\u forcelist=[500,502])
```

**注意:**在'connectionerror`

断路器状态
----
1的情况下,将重试所有类型的请求。**打开**:不允许任何请求
2。**半开**:只允许一个请求
3。**关闭**:将允许所有请求。

**注意**:状态转换:

`close-->;open-->;half-u-open-->;close/open`


欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java GWT对话框从不显示帮助   java在简单的MapReduce作业中带来了极大的开销   javacom。mysql。jdbc。例外情况。jdbc4。MySQLIntegrityConstraintViolationException:列不能为null/onetoone映射   如何通过TCP/IP与Java和Labview进行通信,并发送浮点数据缓冲区?   java Apache camel与spring事件基本示例   java如何使我的秒表应用程序在完全关闭后仍能运行?   java Nutch爬网错误输入路径不存在   java是Mapreduce中按值传递还是按引用传递的键?   正则表达式替换java中的特定字符   Java DOM XML解析   java Eclipse未显示服务器的项目   使用Arraylist进行快速排序的排序Java实现疑难解答   java Split text包含字符串列表中的数字   检查Java中的两个lambda是否执行相同的代码?   java为什么dispatchTouchEvent避免在屏幕上单击?