擅长:python、mysql、java
<p>有什么原因不能直接关闭连接然后重新打开?在</p>
<pre><code>@contextmanager
def with_pika_connection():
credentials = pika.PlainCredentials(worker_config.username, worker_config.password)
connection = pika.BlockingConnection(pika.ConnectionParameters(
host=worker_config.host,
credentials=credentials,
port=worker_config.port,
))
try:
yield connection
finally:
connection.close()
@contextmanager
def with_pika_channel(queuename):
with with_pika_connection() as connection:
channel = connection.channel()
while True:
while not stopping:
try:
with with_pika_channel(queuename) as (connection, channel):
consumer_tag = channel.basic_consume(
callback,
queue=queuename,
)
channel.start_consuming()
except Exception as e:
reportException(e)
# Continue
</code></pre>