gpt4 book ai didi

生产中的 Django-Celery?

转载 作者:行者123 更新时间:2023-12-01 13:38:34 25 4
gpt4 key购买 nike

所以我一直在尝试弄清楚如何制作计划任务,我找到了 Celery 并且能够制作简单的计划任务。为此,我需要打开命令行并运行 celery -A proj beat让任务发生。这在开发环境中运行良好,但在将其投入生产时,这将是一个问题。

那么如何在不使用命令行的情况下让 celery 工作呢?当我的生产服务器在线时,我如何确保我的调度程序能够正常运行? celery 可以这样做还是我需要采用另一种方法?

最佳答案

我们在生产环境中使用 Celery,恰好在 Heroku 上。我们正在迁移到 AWS。在这两种环境中,Celery 都能很好地哼唱。

了解您的生产环境将是什么样子会很有帮助。我有点困惑为什么你会担心关闭你的电脑,因为使用 Django 意味着你正在运行一个网站......你是从你的笔记本电脑服务你的网站吗?

无论如何,假设您要从云平台运行生产服务器,您所要做的就是发送运行 Django 所需的任何命令行和 Celery 的命令行(正如您在问题中已经指出的那样)。

在配置方面,您说您有“计划”任务,这意味着您已经在 config.py 文件中设置了节拍计划。如果不是,它应该看起来像这样(假设您有一个名为 tasks.py 的模块,其中包含您的 celery 任务定义:

from celery.schedules import crontab

beat_schedule = {
'task1': {
'task': 'tasks.task_one',
'schedule': 3600
},
'task2': {
'task': 'tibController.tasks.update_old_retail',
'schedule': crontab(hour=12, minute=0, day_of_week='mon-fri'
}
}

然后在你的tasks.py中调用配置文件,你只是这样做:
from celery import Celery
import config

app = Celery('tasks')
app.config_from_object(config)

您可以在 docs 中找到有关 crontab 的更多信息。 .您也可以查看 repo对于一个简单的 celery 示例。

总之:
  • 创建一个配置文件,确定在
  • 时要运行哪些任务
  • 将配置文件加载到您的 Celery 应用程序中
  • 获取一个云平台来运行您的代码。
  • 完全按照您已经确定的方式运行 celery

  • 希望有帮助。

    关于生产中的 Django-Celery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42218947/

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