Celery执行异步任务之 立即异步执行和延迟异步执行和定时异步执行


一、Celery执行异步任务

1、包架构封装

project
   ├── celery_task # celery包
   │   ├── __init__.py # 包文件
   │   ├── celery.py   # celery连接和配置相关文件,且名字必须交celery.py
   │   └── tasks.py    # 所有任务函数
   ├── add_task.py # 添加任务
   └── get_result.py   # 获取结果

2、建任务、启动任务

建任务、启动celery 

 3、生成任务(在scripts中建add_task文件)

注意:该文件一定要独立开celery 封装的包。原因:比如celery有一个更新轮播图缓存 的任务,django 项目是可以响应 前台或者后台用户主动更新 轮播图数据库的数据,

         当用户更新了数据库数据,就可以执行一下代码,通知celery可以去异步执行更新 轮播图缓存的任务了。

01、直接调用 任务1 中的tasks文件中的test_task方法  (没有走celery)

 结果:

 

02、celery的立即异步执行.delay表示 走celery异步):在add_task.py文件中

 

 

 03、celery异步执行后,获取执行后的结果

 在scripts中建get_task_result文件

 

二、celery的延迟异步执行:在add_task.py文件中

结果:

 

 

 三、celery定时(周期)异步执行  :在celery.py文件中

 开两个 Terminal  都cd 到scripts 

 然后一个执行命令:celery worker -A celery_task_1 -l info -P eventlet

另外一个命令:celery beat -A celery_task_1 -l info        (添加任务:自动添加任务,所以要启动一个添加任务的服务)

结果:

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM