Aam*_*nan 2 python architecture django celery
目前,我们在单个云服务器上完成了所有设置,其中包括:
现在我们正在考虑将主要组件分解为单独的服务器,例如单独的数据库服务器、单独的媒体文件存储、负载均衡器后面的 Web 服务器。原因是不需要购买一台重型服务器,而是使用负载均衡器按需创建服务器,以降低成本并提高整体速度。
我真的对芹菜感到困惑,有没有人曾经在负载均衡器后面的多个生产服务器上使用过芹菜?任何指导将不胜感激。
考虑一个小用例,目前它是在单个服务器上完成的(令人困惑的是,当我们使用多个服务器时如何完成):
abc.pptx文件->引用存储在数据库中->存储在服务器磁盘上docsplit考虑到上述用例,如何设置多个可以执行相同功能的 Web 服务器?
Celery 实际上使这变得非常简单,因为您已经将任务放入队列中。随着更多工作人员的变化,每个工作人员都会获取队列中的下一个工作人员 - 因此多个工作人员可以同时处理,每个工作人员都在自己的机器上处理。
此内容分为三个部分,您已经掌握了其中之一。
设置方法如下:
def my_view(request):
# ... deal with storing the file
file_in_db = store_file(request)
my_process_file_task.delay(file_in_db.id) # Use PK of DB record
# do rest of view logic...
python manage.py celery worker --loglevel=INFO -Q default -E然后,当您添加更多机器时,您将拥有更多工人,并且工作将在他们之间分配。
需要确保的关键事项:
| 归档时间: |
|
| 查看次数: |
3454 次 |
| 最近记录: |