我们有一个Django应用程序,它使用Celery的apply_async()调用将任务发送到我们的RabbitMQ服务器。问题是当有数千个请求进入Django应用程序时,每次apply_async()调用都会导致它打开数千个与RabbitMQ服务器的新连接。
在Celery documentation for apply_async中,有一个连接参数:
connection - 重用现有代理连接,而不是建立新连接。
我的问题是,如何在Django应用程序中使用它?我找不到任何如何使用它的例子。我们使用Gunicorn运行Django,理想情况下,我们希望每个worker创建一个与代理的连接,并在请求之间重用它。通过这种方式,代理上打开的连接数受到工作人员数量的限制。