我想问你在django应用程序中使用芹菜和redis的情况。我正在学习芹菜约2天,我仍然有点困惑:/我已经安装了芹菜和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)其他文章loooot,但没有这两个有用),看来,我需要使用django芹菜。我认为这是一个很好的选择,但后来我读过(这里 - >https://github.com/celery/django-celery),django-celery使用django结果后端(它意味着 - 我的db,rigth?并且我想使用redis!)。 redis可以使用django-芹菜吗?也许用django-芹菜我不需要使用redis?也许有一些让用户创建定期任务的其他方式?我真的需要我的定期任务是快速和轻量级的,因为会有很多它们,并且他们需要完美无瑕(所以我认为我需要将它们推到别的地方)。 我真的很感激任何建议!让用户创建芹菜周期性任务
0
A
回答
0
我认为你有些混淆...... Celery需要Redit服务器作为消息代理,这2件事必须在你的系统中全局安装..为了将这2个工具与你安装的django集成(最好的选择是在您的虚拟环境中)django_celery_beat用于使用crontab和django_celery_results定期执行任务,以便使用Django存储Celery任务...
当然,可以让用户启动并定制定期任务..您可以(在你的模板中,使用表单)接受用户输入,并在你的视图中获取该输入并将其传递给你的tasks.py文件中的一个函数。在你的tasks.py中,你可以创建一个执行任务的函数!
本指南是非常有用的: https://github.com/codingforentrepreneurs/Guides/blob/master/all/Celery_Redis_with_Django.md
1
快速,重量轻,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
后端的原因是,它可以创建在结果查询集。这通常更有用,因为结果显示在视图中,而作业通常不是。能够聚合结果(如平均作业执行时间)并创建图形,在Django中非常有用,并且使用ORM可以更容易地完成,然后使用关键值/值存储对Python进行排序/聚合。
相关问题
- 1. 芹菜Django的周期性任务
- 2. 安装芹菜周期性任务
- 3. 在芹菜4.0的周期性任务
- 4. 执行其他芹菜任务不工作的芹菜周期性任务
- 5. 如何获得芹菜所有任务和周期性任务
- 6. 芹菜周期性任务没有得到执行任务.py
- 7. 如何在芹菜中终止周期性任务?
- 8. 周期性任务不是在Django芹菜
- 9. 仅在一台机器上运行芹菜周期性任务
- 10. Django芹菜周期性任务没有运行(Heroku)?
- 11. 删除芹菜中的任务/周期任务
- 12. 如何创建周期性任务
- 13. 如何使运行与芹菜周期性任务的子任务?
- 14. 的Django +芹菜:如何链任务与参数周期性任务
- 15. 蟒蛇创建芹菜任务作业
- 16. 芹菜任务的属性
- 17. 芹菜任务
- 18. 芹菜任务
- 19. 芹菜父母任务的生命周期是什么?
- 20. 使用周期性任务的应用程序服务器上的芹菜,无需执行重复的任务
- 21. 让用户启动芹菜任务,并让任务完成时让用户知道
- 22. 芹菜,从任务内创建子任务:收到类型为
- 23. 芹菜创建几个任务的任务
- 24. 当app/tasks.py导入模型时,芹菜击败周期性任务失败
- 25. 动态更改芹菜任务的周期性间隔运行时
- 26. 是否可以对芹菜周期性任务运行单元测试?
- 27. 芹菜链任务
- 28. 推芹菜任务
- 29. 芹菜定期任务为asnyc上Django
- 30. 芹菜定期任务不启动