我正在使用 Python、Django 和 MySql 开发 Web 应用程序。我在应用程序中有一项规定,用户可以上传 *.wmv 和 *.mov 文件,系统将处理这些文件并将其转换为 *.mp4。我使用的是单一服务器架构,但随着用户群的增长,视频转换消耗了 90% 的内存。我正在考虑使用 Amazon EC2 将视频转换/流媒体服务器移动到云端,以便使用 Redis 和 Celery 在不同的服务器上进行转换。我想知道 Redis - Celery 是否支持多层架构。如果有人成功地做到了这一点,请告诉我步骤。这将非常有用,因为我正在谷歌搜索但找不到任何支持文档。
最佳答案
如果您想使用 Celery 队列来处理您的作业,您需要:
- 设置 rabbitMQ。您可以在现有主机或 EC2 实例上执行此操作
- 设置 celery 。 Docs很好。
- 根据需要设置 Redis。同样,文档很好
- 配置您现有的服务器,使其能够与任务队列和 Redis 通信。基本上,调整 EC2 防火墙规则
- 确保工作服务器可以看到这些文件。将它们上传到 S3 可能是将它们从云端来回转移的最简单方法
- 更改您的网络服务器代码以触发 celery 任务来进行转换
- 弄清楚转换完成后要做什么 - 如何让用户知道它已完成?
- 去吧。
不要担心“n 层”等等 - 这是一个简单的设置,您可以按照文档在一天内开始。
关于python - Redis - Amazon EC2 上的 Celery 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464038/