- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1
PAGE1
Django高级主题:Celery异步任务与定时任务
1Celery基础概念
Celery是一个分布式任务队列,用于处理大量异步任务。它使用消息代理(如RabbitMQ、Redis等)来在生产者和消费者之间传递消息,使得任务可以在多个工作节点上并行执行。Celery支持任务的延迟执行、定时执行、任务状态跟踪和结果存储等功能,非常适合用于Django项目中处理耗时的后台任务。
2Celery在Django中的安装与配置
2.1安装Celery
pipinstallcelery
2.2配置Celery
在Django项目中创建一个celery.py文件,配置Celery的基本参数:
#myproject/celery.py
from__future__importabsolute_import,unicode_literals
importos
fromceleryimportCelery
os.environ.setdefault(DJANGO_SETTINGS_MODULE,myproject.settings)
app=Celery(myproject)
app.config_from_object(django.conf:settings,namespace=CELERY)
app.autodiscover_tasks()
在settings.py中添加Celery的配置:
#myproject/settings.py
CELERY_BROKER_URL=amqp://guest:guest@localhost:5672//
CELERY_RESULT_BACKEND=rpc://
2.3启动Celery工作节点
celery-Amyprojectworker--loglevel=info
3创建Celery任务
在Django应用中创建一个任务:
#myapp/tasks.py
from__future__importabsolute_import,unicode_literals
fromceleryimportshared_task
@shared_task
defadd(x,y):
returnx+y
4异步任务处理
在视图中调用Celery任务:
#myapp/views.py
fromdjango.httpimportJsonResponse
from.tasksimportadd
defindex(request):
result=add.delay(16,16)
returnJsonResponse({task_id:result.task_id})
获取任务状态:
#myapp/views.py
fromdjango.httpimportJsonResponse
from.tasksimportadd
defcheck_status(request,task_id):
result=add.AsyncResult(task_id)
returnJsonResponse({status:result.status,result:result.result})
5定时任务与Crontab
在celery.py中添加定时任务配置:
#myproject/celery.py
from__future__importabsolute_import,unicode_literals
importos
fromceleryimportCelery
fromcelery.schedulesimportcrontab
os.environ.setdefault(DJANGO_SETTINGS_MODULE,myproject.settings)
app=Celery(myproject)
app.config_from_object(django.conf:settings,namespace=CELERY)
app.autodiscover_tasks()
app.conf.beat_schedule={
add-every-30-seconds:{
task:myapp.tasks.add,
schedule:30.0,
args:(16,16)
},
send-email-every-day:{
task:myapp.tasks.sen
您可能关注的文档
- 全栈工程师-后端开发-Django_Django表单与模型表单.docx
- 全栈工程师-后端开发-Django_Django部署与生产环境配置.docx
- 全栈工程师-后端开发-Django_Django错误处理与调试技巧.docx
- 全栈工程师-后端开发-Django_Django高级主题:RESTfulAPI与DjangoRESTframework.docx
- 全栈工程师-后端开发-Django_Django高级主题:单元测试与持续集成.docx
- 全栈工程师-后端开发-Django_Django缓存机制与优化.docx
- 全栈工程师-后端开发-Django_Django静态文件与媒体文件处理.docx
- 全栈工程师-后端开发-Django_Django框架简介与安装.docx
- 全栈工程师-后端开发-Django_Django视图函数与请求响应.docx
- 全栈工程师-后端开发-Django_Django项目和应用创建.docx
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
最近下载
- CNAS-TRL-017:2021《电煤检测领域实验室认可技术指南》.pdf
- 初中物理《声现象》.ppt VIP
- 大数据时代的人工智能.pptx VIP
- 小学六年级家长会优秀PPT课件.ppt
- 樊登老师推荐:《你就是孩子最好的玩具》(完整版).pdf
- 凯迪克金奖原版绘本Sylvester and the Magic Pebble.pdf
- 外廓尺寸检测系统作业指导书.docx
- 初中教科研课题:《初中语文主题阅读教学的实践探究》子课题结题报告 .pdf
- 必威体育精装版2023版知识产权贯标GBT29490表单 知识产权目标策划管理方案[知识产权合规管理体系文件].docx
- (2024版)AOPA无人机驾驶证认证考试题库-上部分(500题)(含答案).pdf VIP
文档评论(0)