标签: python django amazon-s3 uwsgi
我正在开发一个django应用程序,它定期处理来自多个客户端的大量文件上传。每个文件大约1到10兆字节。
由于上传是线程阻塞的,我只能提供相当于uwsgi工作者/进程数量的许多请求(在我的情况下为4)。
我该怎么做才能提高吞吐量?
是否可以增加uwsgi中的进程/工作人员数量? 什么应该是上限? 我可以在这种情况下使用其他解决方案吗?
Stack:django + uwsgi + nginx在亚马逊ec2和s3桶上运行,用于存储zip文件。
答案 0 :(得分:1)
您需要使用异步任务队列一次上传多个文件。 这些任务可以异步执行(在后台)
我正在使用Celery / Disque来实现这一目标。
了解有关disque here
您可以通过
pip install django-queued-storage
有关详情,请参阅here
答案 1 :(得分:0)
上限应该是多少?
这取决于您的硬件,例如服务器中的核心数量
我可以在这种情况下使用其他解决方案吗?
考虑使用Celery / rabbitMQ。 Celery可用于处理异步文件或上传到S3并将事件通知给rabbitMQ