gpt4 book ai didi

django - 让用户创建 celery 周期性任务

转载 作者:可可西里 更新时间:2023-11-01 11:16:50 24 4
gpt4 key购买 nike

想请教一下在django app中celery和redis的使用。我正在学习 celery 大约 2 天,但我仍然有点困惑:/我已经安装了 celery 和 redis,并且工作正常。我的问题是,我希望用户创建、更新和暂停周期性任务。我读过这篇文章 - http://kindshofer.net/2016/11/19/dynamically_adding_a_periodic_task_to_celery.html这个问题 - How to dynamically add / remove periodic tasks to Celery (celerybeat)一大堆其他文章,但不如这两篇文章有用),看来我需要使用 django-celery。我想,这是一个很好的选择,但后来我读到了(这里 --> https://github.com/celery/django-celery),django-celery 使用 django 结果后端(这意味着 - 我的数据库,对吗?我想使用 redis!) .是否可以将 django-celery 与 redis 一起使用?也许使用 django-celery 我不需要使用 redis?也许还有其他方法可以让用户创建周期性任务?我真的需要我的周期性任务既快又轻,因为它们会很多而且它们需要完美无缺(这就是为什么我认为我需要将它们推到其他地方)。如果有任何建议,我将不胜感激!

最佳答案

快速轻量和redis == Python RQ .但是,工作暂停可能是一个问题。

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

CELERY_RESULT_BACKEND = 'django-cache'

配置cache :

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

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

关于django - 让用户创建 celery 周期性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303416/

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