python celery应用场景_celery在python中的应用

这里不解释celery,如果不清楚可以参考下面链接:

http://docs.celeryproject.org/en/latest/getting-started/introduction.html

这里来演示一下在Django项目中如何使用celery:

1. 首先我们需要使用到两个库,用pip安装:

pip install celery

pip install django-celery

2. 在celery建议使用rabbitmq作为消息代理,当然也支持redis作代理,abbitmq提供的队列和消息持久化机制确实更加稳定,所以对于追求稳定性的任务更适合适配rabbitmq作为中间件, 这里用rabbitmq作为消息代理,用redis作为存储后端

我的环境是deepin,安装rabbitmq和redis

sudo apt-get install rabbitmq-server

sudo apt-gei install redis

3. 在django中使用celery的方式和普通py文件中的方式略有不同,下面是一个向通过秒滴平台发送短信验证码的demo:

普通py文件用法:

#tasks.py

importosfrom celery importCelery

app= Celery(‘tasks‘, backend=‘amqp://guest@localhost//‘, broker=‘redis://localhost:6379/1‘)

@app.task(name="send_verification_code")def_send_verification_code(phone_number, verification_code):""":param phone_number: 目标手机号

:param verification_code: 验证码

:return:

True:发送成功

False:发送失败"""api= getConfig(‘MiaoDi‘, ‘api‘)

accountSid= getConfig(‘MiaoDi‘, ‘accountSid‘)

templateid= getConfig(‘MiaoDi‘, ‘templateid‘)

timeout_s= getConfig(‘MiaoDi‘, ‘timeout‘)

param= ‘{},{}‘.format(verification_code, timeout_s)

timestamp= datetime.datetime.now().strftime(‘%Y%m%d%H%M%S‘)

sign=hash_sign(timestamp)

data={‘accountSid‘: accountSid, ‘templateid‘: templateid, ‘param‘: param,‘to‘: phone_number, ‘timestamp‘: timestamp, ‘sig‘: sign

}

response= requests.post(url=api, data=data)

ret_json=response.text

ret_dict=eval(ret_json)if ret_dict.get(‘respCode‘) != ‘00000‘:returnFalseelse:return True

#view.py

from tasks import_send_verification_codedefsend_verification_code(phone_number, verification_code):

task=_send_verification_code.delay(phone_number, verification_code)if __name__ == ‘__main__‘:

phone_number= input(‘请输入手机号:‘)

verification_code= input(‘请输入验证码:‘)

send_verification_code(phone_number, verification_code)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值