celery

celery

什么是任务队列
任务队列是一种在线程或机器间分发任务的机制。

​ 消息队列的输入是工作的一个单元,称为任务,独立的职程(Worker)进程持续监视队列中是否有需要处理的新任务。

​ Celery 用消息通信,通常使用中间人(Broker)在客户端和职程间斡旋。这个过程从客户端向队列添加消息开始,之后中间人把消息派送给职程。

​ Celery 系统可包含多个职程和中间人,以此获得高可用性和横向扩展能力。Celery 易于使用和维护,并且它 不需要配置文件

​ Celery 有一个活跃、友好的社区来让你寻求帮助,包括一个 邮件列表 和一个 IRC 频道

下面是一个你可以实现的最简应用:

from celery import Celery

app = Celery('hello', broker='amqp://guest@localhost//')

@app.task
def hello():
    return 'hello world'
在django项目中调用Celery

​ 创建celery_tasks 目录并在celery_tasks 文件里创建main.py ,作为celery的启动文件

from celery import Celery

# 为celery使用django配置文件进行设置
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'meiduo_mall.settings.dev'

# 创建celery应用
app = Celery('命名')

# 导入celery配置
app.config_from_object('celery_tasks.config')

# 自动注册celery任务
app.autodiscover_tasks(['celery_tasks.sms'])

在celery_tasks目录下创建config.py文件,用于保存celery的配置信息

broker_url = "redis://127.0.0.1/14"

在celery_tasks目录下创建sms目录,用于放置异步任务相关代码。

在celery_tasks/sms/目录下创建’tasks.py’(必须是tasks文件名)文件,用于保存异步任务

@app.task(name='hello')
def hello():
    return 'hello world'

外部调用时

hello.delay()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值