pika判断rebbitmq远程连接及自动恢复
2018-02-26 17:44
981 查看
客户端连接rabbitmq后,如果长时间没有数据的传输,rabbitmq会申请关闭TCP连接,造成该TCP连接下的所有的信道都不可用,很多时候为了传输数据的高效率,我们会先创建一个信道池,这样省去了每次数据传输连接和释放连接的时间,但由于rabbitmq可能会远程关闭连接,因此需要判断连接池中的通道是否还有效;
connection.is_closed:判断当前的TCP是否关闭,如果是关闭返回True,如果处于连接状态,返回False;
connection.is_closing:判断当前的TCP连接已发起关闭,但关闭还没有完成的状态,如果是关闭返回True,如果处于连接状态,返回False;
connection.is_open:判断当前的TCP连接是否打开,打开返回True,关闭返回False;
channel.is_open:判断当前的channel是否打开,打开返回True,关闭返回False;
channel.is_closed:判断当前的channel是否打开,如果是关闭返回True,如果打开返回False
is_closed和is_open这种函数只能判断客户端的连接是否打开或关闭,但是无法判断服务端连接的状态,所以当服务端远程关闭了连接时,客户端是不能感知到的;
可以设置心跳用来自动关闭异常的TCP连接;
如果服务端远程关闭了连接,当客户端发送消息时,捕捉异常并重新建立连接;
判断TCP连接和channel
当前使用pika模块操作rabbitmq# 首先创建一个TCP连接 # 添加用户名和密码 credentials = pika.PlainCredentials(self.__username, self.__passwd) # 配置连接参数 parameters = pika.ConnectionParameters(host=self.__host, port=self.__port, credentials=credentials) # 创建一个连接对象 connection = pika.BlockingConnection(parameters) # 创建一个信道 channel = connection.channel()
connection.is_closed:判断当前的TCP是否关闭,如果是关闭返回True,如果处于连接状态,返回False;
connection.is_closing:判断当前的TCP连接已发起关闭,但关闭还没有完成的状态,如果是关闭返回True,如果处于连接状态,返回False;
connection.is_open:判断当前的TCP连接是否打开,打开返回True,关闭返回False;
channel.is_open:判断当前的channel是否打开,打开返回True,关闭返回False;
channel.is_closed:判断当前的channel是否打开,如果是关闭返回True,如果打开返回False
注意
connection关闭后,该连接下面的所有的channel都会关闭;is_closed和is_open这种函数只能判断客户端的连接是否打开或关闭,但是无法判断服务端连接的状态,所以当服务端远程关闭了连接时,客户端是不能感知到的;
可以设置心跳用来自动关闭异常的TCP连接;
如果服务端远程关闭了连接,当客户端发送消息时,捕捉异常并重新建立连接;
相关文章推荐
- C#自动判断Excel版本使用不同的连接字符串
- Win7 网络唤醒(当有TCP连接时自动恢复)
- 一个简单前端所用的知识及注意点(自动建立数据源、判断数据源是否正常连接、隐藏表等)
- socket连接,判断连接中断,如果中断,并自动重连。
- Offline.js - 自动判断网络连接状态并提醒用户
- 判断网络连接,在没有开启网络的时候自动跳转到设置界面
- 100523 WinHex脚本自动判断文件头、尾恢复
- 数据库连接中断恢复后自动重连配置汇总
- 黑莓新浪围脖客户端简单莓中自动判断HTTP连接方法
- Offline.js - 自动判断网络连接状态并提醒用户
- C#自动更换IE代理IP并判断代理是否可连接网络
- PB使用WININET的FTP方式自动更新(二、判断是否可以连接)
- 【Android进阶】判断网络连接状态并自动界面跳转
- win7笔记本电脑的无线网连接总是自动断开,重启之后才能恢复解决办法
- 【Android进阶】判断网络连接状态并自动界面跳转
- WIN7上实现一开机就自动连接宽带 && WIN7自带的系统备份和还原 && WIN7盘符混乱 && WIN7查看隐藏文件 && WIN7禁止提示更新 && WIN7备份和恢复
- 判断网络连接状态并自动界面跳转
- win7笔记本电脑的无线网连接总是自动断开,重启之后才能恢复解决办法
- MYSQL数据库连接偶尔连不上,几秒后又自动恢复