gpt4 book ai didi

Django 和 Celery - 如何分发?

转载 作者:行者123 更新时间:2023-12-04 18:40:20 25 4
gpt4 key购买 nike

我正在尝试分发 Django 和 Celery。

我用 Django 和 Celery 创建了一个小项目。 Django 将请求 Celery Worker 处理数据库中的一些数据。然后将数据传回 Django。

我的想法是:

  • Django 堆栈安装在一台服务器上
  • 一台服务器上的消息队列(RabbitMQ)
  • 一台服务器上的 Celery worker

  • 因此总共有 3 个服务器

    然而,问题是 celery 必须使用来自 Django 的一些代码,例如模型,因为它访问模型。因此,它还需要 settings.py 文件才能知道服务器是什么。

    这是否意味着对于 #3,我需要在服务器上安装 Django 和 Celery,但禁用 Django 并只运行 celery?例如 celery -A PROJECT_NAME worker -l INFO,但没有用于 Django 的 Apache 服务器?

    最佳答案

    如果您希望您的 celery 工作人员在不同的服务器上运行,您需要确保该工作人员所需的所有资源都可以从该服务器访问。

    例如,如果您有一个简单的任务,您可以只将该任务所需的代码复制到服务器。如果您的工作人员需要任何其他资源,如其他代码、文件、数据库,您需要确保它具有访问权限。

    确实,如果您想让两台服务器处理相同的任务,则必须使用简单的 Web 界面(例如 Flask)在服务器之间进行通信(并扩展队列的功能)。然后,您必须确保它们都使用相同的数据源。

    考虑远程托管您的数据库,或让远程服务器远程访问数据库。无论哪种方式,在服务器上运行的任何工作人员都需要访问数据库和完成任务所需的所有源代码。然后,您必须简单地让两台服务器共享一个消息队列。

    来源:how to configure and run celery worker on remote system

    关于Django 和 Celery - 如何分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27477031/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com