django celery(QQ蓝鲸)

本文介绍如何使用Celery进行任务调度,包括基本配置、启动流程及执行后台任务的方法。通过实例演示了Celery在QQ蓝鲸平台上的应用,并提供了获取异步任务结果的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方:http://www.celeryproject.org

文档:http://docs.jinkan.org/docs/celery/index.html

FAQ:http://docs.celeryproject.org/en/master/faq.html

 

 

 为什么使用Celery?

 

基础配置

基于QQ蓝鲸平台配置,以下截取配置,qq蓝鲸这里本身不需配置任何东西。

ddefault.py

# 是否启用celery任务,等于false  django就不使用celery
IS_USE_CELERY = True
# 本地开发的 celery 的消息队列(RabbitMQ)信息
BROKER_URL_DEV = 'amqp://guest:guest@127.0.0.1:5672/'
# TOCHANGE 调用celery任务的文件路径, home_application目录下有个celery_tasks.py文件里面写异步函数就可以
CELERY_IMPORTS = (
    'home_application.celery_tasks',
)

 

 

 

 

启动celery

1启动django

python manage.py runserver 127.0.0.1:8000

2启动celery工作进程

python manage.py celery --settings=settings worker -l info

 

3启动周期任务(使用周期任务就启用,不使用就不启用)

python manage.py celery --settings=settings celerybeat -l info

 

 

执行后台任务

增加urls

增加
 (r'^async/$', 'my_async'),

 

celery_tasks.py 蓝鲸中定义的位置和名字,在这文件中增加方法的时候必须要重启work服务

1 @task()
2 def async_task(x, y):
3     """
4     定义一个 celery 异步任务
5     """
6     7     return x + y

增加方法不重启服务回报下面的错误:

 

view

1 from celery_tasks import async_task
2 def my_async(reqeust):
3     task_id=async_task.delay(1,2)#delay异步执行,返回结果就是一个任务id
4     print(task_id)
5     return HttpResponse("ok")

 

work界面结果:

 

 

获取异步结果

 

转载于:https://www.cnblogs.com/menkeyi/p/6867776.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值