Pythonを使用してRabbitMQキューにデータを送信しようとしています。Python PikaとRabbitMQ公開するために接続する
私はサーバーを構成していませんが、他のプロセス用に実行しています。私は働いているログインがあり、問題なしでWeb出力にアクセスできます。
サンプルコードのRabbitMQのpythonのために与えピカを使用しています。
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(
host='xxx.xxx.xxx.xxx:xxxxx'))
channel = connection.channel()
channel.queue_declare(queue='Test')
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
これが実行され、私をキックオフ:
pika.exceptions.ConnectionClosed
ない上に行くことがたくさんが、安全な仮定がログインの問題ですので、サンプルコードにはログイン情報がありません。
私はそれを追加しました。
import pika
import sys
try:
credentials = pika.PlainCredentials('username', 'password')
connection = pika.BlockingConnection(pika.ConnectionParameters('xxx.xxx.xxx.xxx',
xxxxx,
'virtualhostnamehere',
credentials,))
channel = connection.channel()
channel.queue_declare(queue='Test')
channel.basic_publish(exchange='amq.direct',
body='Hello World!')
print(" [x] Sent 'Hello World!'")
except:
e = sys.exc_info()[0]
print e
私を与える前に良い数分間の周りにハングアップするようだ:
<class 'pika.exceptions.IncompatibleProtocolError'>
サーバーは罰金他のサービスを実行しているが、私は私が間違って何をやったか特定するように見えることはできません。
ログインが正しいです。 vhostの名前が正しい。ホストは正しいです。交換名が正しい。
正しい方向にあると分かります。
更新:
私は同じ結果と同様URLParametersを使用してみました。
parameters = pika.URLParameters('amqp://username:[email protected]:xxxxx/notmyvhostname')
connection = pika.BlockingConnection(parameters)
使用しているポートとユーザ名はどれですか? – cantSleepNow
私はログインを「username」と「password」で、ポートをxxxxxに置き換えました。 – PoweredByCoffee
しかし、私はポートが何も変わらないと思う。それはポート15672で、ログインはブラウザの出力を取得するのと同じです。 – PoweredByCoffee