Azure Service Bus
のフィルタを使用してトピックを購読しています。Python 3.x
で開発しましたが、そのトピックに送信された情報(フィルタを通過する情報)を待つと受信できません。Azureサービスバスのトピックサブスクリプションに関する情報を受け取ります
は、私はいつも聞いているデーモンを作成する必要があると私はその情報を受信したとき、私は自分のアプリケーションの内部サービスに送信していることなので、受信機は、ループWhile True
コード内のスレッドで実行されています私はメッセージを受信するために使用し、次のとおりです。
while True:
msg = bus_service.receive_subscription_message(topic_name, subscription_name, peek_lock=True)
print('Mensaje Recibido-->',msg.body)
data = msg.body
send_MyApp(data.decode("utf-8"))
msg.delete()
私はそれが次の情報である実行したときに、私は何を得る:
Message --> None
Exception in thread Thread-1:
Traceback (most recent call last):
File "..\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "..\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "../Python/ServiceBusSuscription/receive_subscription.py", line 19, in receive_subscription
send_MyApp(data.decode("utf-8"))
AttributeError: 'NoneType' object has no attribute 'decode'
スレッドから受信者を実行すると、これはエラーメッセージです(タイムアウトがスキップされたときにデーモンがスキップできないため、タイムアウトを削除する必要があります)。基本的に、それは同じエラーです:
Traceback (most recent call last):
File "../Python/ServiceBusSuscription/receive_subscription.py", line 76, in <module>
main()
File "../Python/ServiceBusSuscription/receive_subscription.py", line 72, in main
demo(bus_service)
File "../Python/ServiceBusSuscription//receive_subscription.py", line 25, in demo
print(msg.body.decode("utf-8"))
AttributeError: 'NoneType' object has no attribute 'decode'
私が待っている情報を受信しても(私がプログラムされていない)サービスバスタイムアウトをスキップしません。
誰も私を助けることができますか?マイクロソフトのドキュメントは実際にはあまり役に立ちません。事前に
おかげ
UPDATE
私はこの問題は、Azureのサービスバスとサブスクリプションとフィルタからだと思います。実際、私は23のフィルタを持っていますが、私はAzure Service Busが1つのサブスクリプションでしか動作しないと思います。(しかし、私はこの点については分かりません。
'msg'を印刷するとどうなりますか?私の推測では、サービスバスから何も戻ってこないということです。 –
正確には、私は何も持っていません:(あなたがトレースで見ることができるように、最初の行はメッセージの結果です:なし:( – jjmartinez
と私はメッセージを受け取る必要があります(私はもちろん、私はPythonで待っているメッセージを受け取っています – jjmartinez