AMQP에 메시지를 제출할 때 교환이 존재하지 않는지 여부를 감지 할 수 있기를 원합니다.py-amqp와 교환을 감지하는 방법
다음 예제를 고려하십시오.
#!/usr/bin/python
import amqp
from time import sleep
conn = amqp.Connection(host="localhost:5672", userid="guest", password="guest", virtual_host="/")
outgoing = conn.channel()
message = amqp.Message("x")
while True:
print "publish message."
outgoing.basic_publish(message,exchange="non-existing",routing_key="fubar")
sleep(1)
이 스크립트는 교환에 게시를 유지하지만 교환이 존재하지 않으면 오류를 발생시키지 않습니다. 교환이 존재하면 메시지가 도착합니다.
#!/usr/bin/python
import amqp
from time import sleep
conn = amqp.Connection(host="localhost:5672", userid="guest", password="guest", virtual_host="/")
outgoing = conn.channel()
message = amqp.Message("x")
while True:
print "publish message."
outgoing.basic_publish(message,exchange="non-existing",routing_key="fubar")
outgoing.wait()
sleep(1)
나는()는 amqp.exceptions.NotFound 내가 원하는 무엇 인 발생 outgoing.wait 추가 할 때. 그러나 문제는이 경우 Exchange가 존재하면 메시지가 도착하지만 outgoing.wait()가 내 루프를 차단한다는 것입니다. (별도의 스레드에서 outgoing.wait()을 실행할 수 있지만 수행하고 싶지는 않습니다.)
처리 방법은 무엇입니까?
어떤 조언 팁 포인터는
감사합니다,
제이을 환영