1.一种接口切换方法,应用于电子装置,其特征在于:
探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;
当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确、状态码与状态码预设值相同的无故障接口;
应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换,对于返回信息正确,并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接,获取响应耗时是通过引入datetime模块,利用datetime模块中datetime.now()函数,返回当前的本地时间并赋值给starttime变量;
然后使用Python的urllib模块中的urlopen()函数创建一个表示远程url的类文件对象;
然后通过status = urllib.urlopen(url,data).code()来获取http状态码,其中,urlopen(url,data)是实现对接口的服务器的url的访问,并通过code()函数获取http状态码;
在获取到http状态码后,再通过变量endtime来获取当前的本地时间,利用endtime与starttime的差值得到接口响应的耗时。
2.根据权利要求1所述的接口切换方法,其特征在于:判断返回信息是否正确的方法是通过正则表达式来匹配返回信息里的关键字,如果匹配则为true否则为false,包括以下步骤:先使用urllib.urlopen()函数来获取接口的服务器的url上的信息,并赋值给response变量;
导入Python的re模块,调用re模块的compile()函数,compile()函数根据包含正则表达式的字符串创建模式对象;
然后response.read()函数读取response变量中的内容,并利用search()函数来查找其中是否有与compile()函数设定的字符串匹配的结果,如果有,则返回true,否则,返回false。
3.根据权利要求1所述的接口切换方法,其特征在于:
接口的配置保存在redis数据库里,在redis数据库里维护一个包含配置参数的hash数据结构,所述hash数据结构包括如下参数:{intel_channel:{protocol:"http",address:"供应商地址 ",port:"供应商端口",url:"供应商url"}}intel_channel:代表供应商的配置;
protocol:代表供应商的用到的协议;
address:代表供应商的地址;
port:代表供应商的端口;
url:代表供应商的url。
4.根据权利要求3所述的接口切换方法,其特征在于:
利用redis.ConnectionPool()函数建立连接池对象来完成redis数据库与应用之间的连接,按照接口的数量创建初始数量的连接池。
5.根据权利要求4所述的接口切换方法,其特征在于:
当有应用要访问redis数据库时,从连接池中取出一个连接,如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大,则创建一个新的数据库连接。
6.一种电子装置,其特征在于,该电子装置包括:存储器和处理器,所述存储器中存储有接口切换程序,所述接口切换程序被所述处理器执行时实现如下步骤:探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息为true或false的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;
当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息判断为true并且http状态码与状态码预设值相同的无故障接口;
应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换,对于返回信息正确,并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接,获取响应耗时是通过引入datetime模块,利用datetime模块中datetime.now()函数,返回当前的本地时间并赋值给starttime变量;
然后使用Python的urllib模块中的urlopen()函数创建一个表示远程url的类文件对象;
然后通过status = urllib.urlopen(url,data).code()来获取http状态码,其中,urlopen(url,data)是实现对接口的服务器的url的访问,并通过code()函数获取http状态码;
在获取到http状态码后,再通过变量endtime来获取当前的本地时间,利用endtime与starttime的差值得到接口响应的耗时。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现权利要求1至5中任一项所述的接口切换方法。