2012-12-13 43 views
0

我将尝试通过鼠兔的RabbitMQ通过二进制文件(RabbitMQ的蟒蛇司机)蟒蛇通过二进制文件通过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的文件。

我会怎么做呢?

回答

1

有两种方法可以做到这一点。如果您可以序列化数据,则可以将其作为常规消息发送。因此,如果您可以将数据文件加载为对象,则可以使用yaml XML或Json将其序列化为文本。并发送序列化文本作为消息。并在消费者端进行反序列化。除此之外,你可以将身体视为一个字节数组。字符串是字节数组,因此消息将作为文本无意义,但是将会是您文件的字节重新生成。

另一种方法是根本不发送文件。而是每条消息都是一个链接,因此消费者知道在哪里找到该文件。然后它可以读取或下载文件。