Celery

Celery介绍
Celery是一个功能完备即插即用的任务队列。它使得我们不需要考虑复杂的问题,使用非常简单。celery看起来似乎很庞大,本章节我们先对其进行简单的了解,然后再去学习其他一些高级特性。 celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。 celery的特点是:

简单,易于使用和维护,有丰富的文档。
高效,单个celery进程每分钟可以处理数百万个任务。
灵活,celery中几乎每个部分都可以自定义扩展。
celery非常易于集成到一些web开发框架中.
celery通过消息进行通信,通常使用一个叫Broker(中间人)来协client(任务的发出者)和worker(任务的处理者). clients发出消息到队列中,broker将队列中的信息派发给worker来处理。

一个celery系统可以包含很多的worker和broker,可增强横向扩展性和高可用性能。

在这里插入图片描述
一:安装
1、pip install -U Celery

二:创建应用

1、创建celery_tasks包
2、在包内创建运行入口文件:main.py
	1、创建实例客户端:
	# 为celery使用django配置文件进行设置
	import os
	if not os.getenv('DJANGO_SETTINGS_MODULE'):
	    os.environ['DJANGO_SETTINGS_MODULE'] = 'izhiku.settings.dev'
		1、from celery import Celery
		2、创建实例:celery_app = Celery('指定别名')
		3、加载配置:celery_app.config_from_object('celery_tasks.config')
		4、自动的将异步任务添加到celery_app: celery_app.autodiscover_tasks(['celery_tasks.sms'])
3、创建启动配置文件:config.py
	1、配置任务队列:broker_url = 'redis://127.0.0.1/14'

4、创建异步任务文件名字必须叫tasks.py:sms/tasks.py(必须为tasks.py)
	1、from celery_tasks.main import celery_app
	2、@celery_app.task(name='send_sms_code')
	     def send_sms_code(moble, sms_code):
		(代码添加耗时任务)

三:启动celery服务器

  1、启动worker:celery -A celery_tasks.main worker -l info
  2、python manage.py celery worker -c 4 --loglevel=info(djcelery)

四:视图内执行任务时调用delay: 将耗时任务添加到任务队列,并触发异步任务,让观察者看到(发送短信验证码为例)

	1:form celery_tasks.sms.tasks import send_sms_code
	2:send_sms_code.delay(moble, sms_code)

查看异步任务:

celery -A tasks.py inspect registered
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值