Celery异步任务队列的使用

版权声明:未经允许,私自转载,版权必究。 https://blog.csdn.net/Charles_TheGod/article/details/83016539

版权声明:本文为博主原创文章,未经博主允许不得转载。https://mp.csdn.net/mdeditor/83016539

在这里插入图片描述

任务发送者,任务执行者,中间人

安装: pip install celery

使用:
1)创建一个Celery类的实例对象
from celery import Celery
celery_app = Celery('demo')

2)进行配置,配置broker的地址,可以新建一个配置文件
配置文件:broker_url = '中间人地址'

3)加载配置
celery_app.config_from_object('配置文件路径')

4)封装任务函数
@celery_app.task(name='my_first_task')
def task_func(a, b):
    print('任务函数被调用')
    # ...
 
5)创建worker
celery -A `celery_app对象包路径` worker -l info

6)发出要执行任务
task_func.delay(1, 3)

创建一个文件夹celery_tasks

  • main.py文件来进行我们celery运行的入口
"celery_tasks 文件夹下 main.py文件"

# 创建celery类的对象
from celery import Celery
celery_app = Celery('celery_tasks')

# 加载配置项
celery_app.config_from_object("celery_tasks.config")

# 启动worker时 自动发现 任务函数
"worker发现任务函数的时候自动去路径下找tasks文件,所以任务函数文件名一定要是tasks"
celery_app.autodiscover_tasks(['celery_tasks.sms'])
  • 文件夹下创建config.py文件,用来保存celery配置信息
# 指定中间人的地址
broker_url = "redis://127.0.0.1:6379/3"
  • 封装任务函数-- 因为后期会有很多的任务函数,所以我们为任务创建文件夹
# 创建一个发短信的任务,创建文件夹 sms 文件夹保存发短信的函数文件
# 创建一个tasks.py文件,用来写发短信的函数
"tasks.py文件"
from celery_tasks.main import celery_app

@celety_app.tasks(name="send_sms_code")
def send_sms_code(a, b):
	print("任务函数被调用了")
  • 开启我们的celery
celery -A celery_tasks.main worker -l info
  • 发出我们要执行的任务
"view.py"
from celery_tasks.sms.tasks import send_sms_code

send_sms_code.delay("要传递的参数")

猜你喜欢

转载自blog.csdn.net/Charles_TheGod/article/details/83016539