使用RabbitMQ和Kombu将{pdf}文件移动到目录

时间:2017-11-28 19:23:34

标签: python pdf rabbitmq kombu

我想创建几个使用RabbitMQ和Kombu的Python程序。程序允许生产者读取pdf文件并将它们发送到RabbitMQ数据库,消费者可以在其中接收它们并将它们移动到计算机上的某个目录中。这是我到目前为止的生产者代码:

producer.py

def kombu_producer(fileName, KEY):
    with open(fileName, mode='rb') as file:
        fileContent = file.read()
        connection_string = 'amqp://guest:guest@localhost:5672//'
        with kombu.Connection(connection_string) as producer_connection:
            channel = producer_connection.channel()
            exchange = kombu.Exchange("ExampleExchange", type="fanout")
            producer = kombu.Producer(exchange=exchange, channel=channel, routing_key=KEY)
            queue = kombu.Queue(name="Example-Queue", exchange=exchange, routing_key=KEY)
            queue.maybe_bind(producer_connection)
            queue.declare()
            producer.publish(fileContent)
            producer_connection.release()
        file.close()

以下是我未完成的消费者代码:

consumer.py

def kombu_consumer(KEY):
    connection_string = 'amqp://guest:guest@localhost:5672//'
    with kombu.Connection(connection_string) as consumer_connection:
        exchange = kombu.Exchange("ExampleExchange", type="fanout")
        queue = kombu.Queue(name="Example-Queue", exchange=exchange, routing_key=KEY)

我还没有创建消费者或回调函数,但我现在不知所措。我正在试图弄清楚如何编码它,以便pdf文件将移动到某个目录。例如,假设生产者向RabbitMQ发送一个名为“example.pdf”的文件。我希望使用者接收文件并将其移动到目录“C:\ Documents \ ConsumerDirectory \”,文件名完整无缺。我觉得我需要对回调函数(def process_file(body,message))做一些事情,我需要使用正文或消息,但我不确定是什么。我是否需要对producer.py做些什么?感谢。

编辑:实际上,也许我问的是错误的问题。由于pdf文件是在生产者中读取并变成一条消息,我如何将消息转回到消费者方面具有相同格式和名称的pdf文件中?

0 个答案:

没有答案