在网页应用中使用Pika BlockingConnection可以吗?
我对 BlockingConnection
和 AsyncoreConnection
有点困惑。我想从一个 Django 应用程序向 RabbitMQ 队列发送一些消息。使用一个全局的 BlockingConnection
对象来做到这一点可以吗?
谢谢。
1 个回答
8
每个线程都需要有一个 BlockingConnection
对象,这在 pika 的常见问题解答 中有说明:
Pika 的代码中没有线程的概念。如果你想在多线程环境中使用 Pika,确保每个线程都有一个 Pika 连接,并且这个连接是在该线程中创建的。跨线程共享一个 Pika 连接是不安全的。
所以,答案取决于你是如何部署 Django 的。如果你在多线程环境中使用 Django,就不能使用一个全局的 BlockingConnection
; 你需要为每个线程创建一个。如果你不使用多线程,那么可以使用一个全局的 BlockingConnection
对象。