python - RabbitMQ python 库检查状态

标签 python rabbitmq pika python-pika

亲们, 我正在尝试检查出错的连接,并在发生这种情况时登录以发出警报。

credentials = pika.PlainCredentials(username, password)
parameters = pika.ConnectionParameters(
    credentials=credentials,
    host='localhost',
    port=tcpport,
    virtual_host='/vhost')
if pika.BlockingConnection(parameters):
    log_error("RabbitMQ Accepts non-SSL Connections")
else:
    log_info("RabbitMQ Not accepting non-SSL connections")

出于某种原因,这不起作用,并且正在吐出:

WARNING:pika.adapters.base_connection:Connection to 127.0.0.1:8080 failed: [Errno 111] Connection refused
Traceback (most recent call last):
  File "./rabbit_test.py", line 141, in <module>
    main()
  File "./rabbit_test.py", line 129, in main
    check_non_ssl('username', 'password')
  File "./rabbit_test.py", line 40, in check_non_ssl
    if pika.BlockingConnection(parameters):
  File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py", line 107, in __init__
    super(BlockingConnection, self).__init__(parameters, None, False)
  File "/usr/lib/python2.6/site-packages/pika/adapters/base_connection.py", line 62, in __init__
    on_close_callback)
  File "/usr/lib/python2.6/site-packages/pika/connection.py", line 590, in __init__
    self.connect()
  File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py", line 206, in connect
    if not self._adapter_connect():
  File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py", line 275, in _adapter_connect
    raise exceptions.AMQPConnectionError(1)
pika.exceptions.AMQPConnectionError: 1

我如何捕捉失败并发出警报并继续我的检查,而不是脚本中断?

谢谢!

最佳答案

您可以使用 tryexcept 代替将语句评估为 bool 值的 if/else 子句> 捕捉错误:

try:
    pika.BlockingConnection(parameters)
    log_error("RabbitMQ Accepts non-SSL Connections")
except: # if the anything goes wrong, go here
    log_info("RabbitMQ Not accepting non-SSL connections")

关于python - RabbitMQ python 库检查状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964377/

相关文章:

python - Pandas groupby : group by semester

Python elasticsearch-dsl 动态查询

python - 错误代码 : 'return' outside function

python - 尝试连接到 RabbitMQ 时出现 IncompatibleProtocolError

RabbitMQ def回调( channel ,方法,属性,主体)

python - 鼠兔连接丢失 Error : pika. exceptions.StreamLostError : Stream connection lost: ConnectionResetError(104, 'Connection reset by peer' )

python - 在 Pandas DataFrames 中找到最近点

plugins - 为rabbitmq 管理启用SSL。服务器启动,但无法接受请求

java - 如何为 python 接收器编写 Spring Boot RabbitMQ 发送器?

python-3.x - 队列的等价arg 'durable'