Django 让用户创建芹菜定期任务

Django 让用户创建芹菜定期任务,django,redis,celery,django-celery,periodic-task,Django,Redis,Celery,Django Celery,Periodic Task,我想问一下芹菜和redis在django应用程序中的使用情况。我已经学习芹菜大约两天了,但我仍然有点困惑:/我已经安装了芹菜和redis,它工作得很好。我的问题是,我希望用户创建、更新和挂起定期任务。我读过这篇文章——还有这个问题——一大堆其他文章,但没有这两篇那么有用),看来我需要用django芹菜。我认为这是一个很好的选择,但后来我读到(这里-->),django芹菜使用django结果后端(这意味着-我的db,rigth?我想使用redis!)。有没有可能在redis中使用django芹菜

我想问一下芹菜和redis在django应用程序中的使用情况。我已经学习芹菜大约两天了,但我仍然有点困惑:/我已经安装了芹菜和redis,它工作得很好。我的问题是,我希望用户创建、更新和挂起定期任务。我读过这篇文章——还有这个问题——一大堆其他文章,但没有这两篇那么有用),看来我需要用django芹菜。我认为这是一个很好的选择,但后来我读到(这里-->),django芹菜使用django结果后端(这意味着-我的db,rigth?我想使用redis!)。有没有可能在redis中使用django芹菜?也许用django芹菜我不需要用redis?也许还有其他方法可以让用户创建周期性任务?我真的需要我的周期性任务快速轻量级,因为会有很多任务,它们需要完美无瑕(这就是为什么我认为我需要把它们推到其他地方)。
如果有任何建议,我将不胜感激

我想你是在搞混。。。芹菜需要Redit服务器作为消息代理,这两个东西必须在您的系统中全局安装。。为了将这2个工具与您安装的django集成(最好的选择是在您的虚拟环境中),django_Cellery_beat用于周期性任务,使用crontab和django_Cellery_结果来存储芹菜任务

当然,用户可以启动并执行定制的定期任务。。您可以(在模板中,使用表单)获取用户输入,然后在视图中获取该输入并将其传递给tasks.py文件中的函数。。在您的tasks.py上,您可以创建一个生成任务的函数

本指南非常有用:

快速、轻量级和redis==。然而,工作暂停可能是一个问题

关于芹菜问题:结果后端仅存储结果。它不处理队列。但即使如此,您也可以将结果发送到Redis:

CELERY_RESULT_BACKEND = 'django-cache'
配置:

但是-使用django db后端的原因是可以在结果上创建查询集。这通常更有用,因为结果显示在视图中,而作业通常不显示。能够聚合结果(如平均作业执行时间)和创建图形,在Django中非常有用,并且使用ORM可以更容易地完成,然后在python中使用键/值存储对这些内容进行排序/聚合

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}