亚马逊AWS上的Django + Celery - 使用单独的EC2实例作为工作人员

时间:2014-06-20 14:44:57

标签: django amazon-web-services celery

我有一个Django应用程序。我正在使用Celery在后台运行长时间运行的进程。应用程序和芹菜工作者都在同一台机器上运行。

现在我们正在将服务器迁移到AWS。在AWS上,我们希望创建如下设置:

我们有n个运行应用服务器的EC2实例,我们有m个EC2实例作为工作者。当我们需要执行长时间运行的过程时,app server会将此作业发送给worker,并且worker会处理该作业。但是这项工作依赖于Django模型和数据库。

我们如何设置工作人员以使他们能够运行这些依赖django模型的工作?

2 个答案:

答案 0 :(得分:3)

这不是特定于AWS的。

你必须:

  1. 确保每台服务器都有相同版本的应用代码
  2. 跨服务器的所有工作人员使用相同的任务代理和结果后端
  3. 工作人员可以连接到您的数据库(如果需要)
  4. 更详细的配置建议需要其他信息:)

答案 1 :(得分:0)

另一种方法是使用EC2容器服务,它有两个不同的运行docker容器,一个用于app,另一个用于worker。