【问题标题】:Django + Celery on Amazon AWS - Using separate EC2 instances as workersAmazon AWS 上的 Django + Celery - 使用单独的 EC2 实例作为工作人员
【发布时间】:2014-06-20 14:44:56
【问题描述】:

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

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

我们有 n 个运行应用服务器的 EC2 实例,我们有 m 个 EC2 实例作为工作线程。当我们需要做一个长时间运行的进程时,app server 将这个作业发送给 worker,worker 处理这个作业。但这项工作取决于 Django 模型和数据库。

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

【问题讨论】:

  • 我有同样的情况,你最后的决定是什么?

标签: django amazon-web-services celery


【解决方案1】:

这不是 AWS 特定的。

你必须:

  1. 确保每台服务器都有相同版本的应用代码
  2. 分布在服务器上的所有工作人员都使用相同的任务代理和结果后端
  3. 工作人员可以连接到您的数据库(如果需要)

更详细的配置建议需要更多信息:)

【讨论】:

  • 好吧,这似乎足够了,谢谢。我试图通过更轻量级的工作人员来实现这一点,但他们至少需要按照您的建议保存应用程序代码。
【解决方案2】:

另一种方法是使用 EC2 容器服务,它有两个不同的运行 docker 容器,一个用于应用程序,一个用于工作程序。

【讨论】:

    猜你喜欢
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 2021-08-18
    • 2021-09-08
    相关资源
    最近更新 更多