1

pika(rabbitmqのpythonドライバー)によってrabbitmqを介してバイナリファイルを渡そうとしています

channel.exchange_declare(exchange=exchange_name,type="fanout",durable=True)
channel.queue_declare(queue=queue_name,durable=True)
channel.queue_bind(exchange=exchange_name,queue=queue_name,routing_key="#")
channel.confirm_delivery()
confirmed = channel.basic_publish(exchange=exchange_name,routing_key="",body=data)

データは私のバイナリファイルです。ファイル名をパラメーターとして渡して、rabbimqにキューに入れているファイルを確認したいと思います。

どうすればいいですか?

4

1 に答える 1

1

これには 2 つの方法があります。データをシリアル化できる場合は、通常のメッセージとして送信できます。したがって、データ ファイルをオブジェクトとしてロードできる場合は、yaml XML または Json を使用してテキストにシリアル化できます。シリアル化されたテキストをメッセージとして送信します。そして、消費者側で逆シリアル化します。それ以外の場合は、本体を単なるバイト配列として扱うことができます。文字列はバイトの配列であるため、メッセージはテキストとしては意味がありませんが、ファイルのバイト表現になります。

別のアプローチは、ファイルをまったく送信しないことです。むしろ、各メッセージはリンクであるため、消費者はファイルの場所を知ることができます。その後、ファイルを読み取ったりダウンロードしたりできます。

于 2012-12-14T05:07:26.883 に答える