冗余服务器客户端

client-of-redundant-servers的Python项目详细描述


冗余服务器的客户端

Build StatuscodecovPyPI version

冗余服务器的通用客户端。提出不可靠服务器请求的简单框架。 如果没有可用的服务器,则引发异常,否则返回第一个未失败服务器的结果。 支持服务器的循环、固定和随机顺序。

目的是你可以用这个来把那些本来有点乏味的东西粘在一起, 使用从clientofredundantservers继承的客户机类。

安装

pip install client-of-redundant-servers

用法

假设您有一些web服务器,所有服务器都提供相同的内容,并且您希望从任何一个服务器获取文件。 您不关心哪个服务器响应,但不希望手动查找故障并重试。

client_of_redundant_servers允许您编写如下内容:

importrequestsimportclient_of_redundant_serversascorsfromcollectionsimportOrderedDictclassClientOfRedundantWebServers(cors.ClientOfRedundantServers):def__init__(self,url_list:list):# Super().__init__ wants a dict, but this example is so simple that# a list can be used to create an OrderedDict of None.url_dict=OrderedDict((url,None)forurlinurl_list)super().__init__(url_dict)def_get_file_func(self,url):try:r=requests.get(url)# Check for errors that didn't raise a requests.exceptionifnotr.ok:raisecors.CurrentServerFailedreturnrexceptrequests.exceptions.RequestException:raisecors.CurrentServerFaileddefget_file(self):returnself.request(self._get_file_func)# Only picking on Ubuntu because it is widely mirrored.urls=["http://badserver.example.com/badfile","http://www.mirrorservice.org/sites/cdimage.ubuntu.com/cdimage/releases/16.04/release/SHA256SUMS","http://nl.archive.ubuntu.com/ubuntu-cdimages/16.04/release/SHA256SUMS"]client=ClientOfRedundantWebServers(urls)try:r=client.get_file()print(r.text)print("*****")print("Retrieved from : "+r.url)exceptcors.AllAvailableServersFailed:print("Error! No servers were available to service the request.")

如果运行它,您将看到客户端尝试从badserver检索文件, 但失败了,所以它继续尝试下一个可用的服务器。

请参阅“examples”目录中可能有用的一些示例。 目前有一个radius客户端正在使用pyrad 以及使用ldap3的活动目录LDAP客户端。

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

推荐PyPI第三方库


热门话题
JavaFX JavaFX。打印印刷工的工作。createPrinterJob()在mac上始终为空   如何在JavaEE和Spring引导中重新加载属性?   java获得了特定的进程CPU使用率   java RDD之后的空文件是什么。保存ASTEXTFILE?   在pubQuery模板中定义表模式的java   java JMC飞行记录器不显示自定义方法   java如何在循环中存储用户以前的值?   安卓中的java转换时间(毫秒)   java自定义卡片视图形状   groovy如何为Java程序编写输入脚本   性能JMeter:java。网NoRouteToHostException:无法分配请求的地址(地址不可用)   java Java7垃圾收集器如何工作?   用java进行单元测试   java如何将因子代码转换为素数和复合标识符?