如何从单个连接(pika/rabbitmq)创建新通道?

如何从单个连接(pika/rabbitmq)创建新通道?,rabbitmq,pika,python-pika,Rabbitmq,Pika,Python Pika,我正在编写一些python代码,使用pika 0.9.13连接到RabbitMQ。我正在创建很多子进程(可能是1000个),并希望每个进程都能够发送到RabbitMQ。环顾四周,似乎最好的方法是创建单个连接,然后在该连接中创建通道 有人能建议如何最好地做到这一点吗?通常,代码如下所示:- from multiprocessing import Process def f(connection): # pass the pika connection somehow ... #

我正在编写一些python代码,使用pika 0.9.13连接到RabbitMQ。我正在创建很多子进程(可能是1000个),并希望每个进程都能够发送到RabbitMQ。环顾四周,似乎最好的方法是创建单个连接,然后在该连接中创建通道

有人能建议如何最好地做到这一点吗?通常,代码如下所示:-

from multiprocessing import Process

def f(connection):
    # pass the pika connection somehow ...
    # create the channel ...
    channel = connection.channel()
    # .... rest of process code

if __name__ == '__main__':
    #
    # pika code here to establish the MQ connection ...
    # connection = ....

    p = Process(target=f, args=(connection,))
    p.start()
我应该使用什么类型的适配器(阻塞连接?)


提前谢谢

您不想走多处理的道路。通道不是线程安全的。你必须对你的代码做更多的解释。创建1000个线程与rabbitmq对话。他们只是在使用来自rabbitmq的数据,或者正在向rabbitmq发送信息。如果将数据发送到rabbitmq,该数据来自何处?生成的进程将向代理发布数据。数据来自生成该数据的另一段代码。因此,理想情况下,我将这个衍生过程设置为:-1。使用开放连接创建到RabbitMQ的新通道。2.调用“data geenrator”的实例并获取一些数据。3.通过频道发布。谢谢,进展如何?你是如何解决这个问题的?