python—Celery异步分布式

Celery  是一个python开发的异步分布式任务调度模块,是一个消息传输的中间件,可以理解为一个邮箱,每当应用程序调用celery的异步任务时,会向broker传递消息,然后celery的worker从中取消息

Celery  用于存储消息以及celery执行的一些消息和结果

对于brokers,官方推荐是rabbitmq和redis

对于backend,也就是指数据库,为了简单一般使用redis

安装启动celery:

pip install celery

windows下,这里还得安装依赖包(协程)

pip install eventlet

下面举个 注册发验证码的 异步任务:

建立单py文件,名称为 tasks.py(必须)

 from celery import Celery

 broker_url = 'redis://127.0.0.1:6379/14'          #任务存放指定库
result_backend = 'redis://127.0.0.1:6379/15' #任务执行结束存放指定库
app = Celery('tasks',broker=broker_url,backend=result_backend) from yunpian_python_sdk.model import constant as YC
from yunpian_python_sdk.ypclient import YunpianClient YUNPIAN_KEY = '5f10ebc31xxxxxxxxxxxxxxxxdf3906994833' @app.task(name='send_sms_code')
def send_sms_code(mobile,sms_code):
'''
异步发送手机验证码
'''
clnt = YunpianClient(YUNPIAN_KEY)
param = {YC.MOBILE: mobile, YC.TEXT: '【云片网】您的验证码是{}'.format(sms_code)}
r = clnt.sms().single_send(param)
print('======返回码{}======API结果{}'.format(r.code(), r.data()))

view.py中调用异步任务:

 from meiduo_mall.utils.tasks import send_sms_code        #导包

 sms_code = '{:0>6d}'.format(random.randint(0,999999))    #生成验证码

 send_sms_code.delay(mobile,sms_code)                     #调用 异步任务执行

前后端任务先运行,然后执行:

celery -A tasks worker -l info -P eventlet

执行 结果:

安装启动celery

python—Celery异步分布式的更多相关文章

  1. python celery 异步学习

    1.运行redis 2.安装celery:pip install celery[redis] 3.vim task.py import time from celery import Celery b ...

  2. day44-Celery异步分布式

    celery异步分布式Celery是一个python开发的异步分布式任务调度模块.Celery本身并不提供消息服务,使用第三方服务,也就是borker来传递任务,目前支持rebbimq,redis, ...

  3. 【理论】python使用celery异步处理请求

    Flask中使用celery队列处理执行时间较长的请求. 一. 安装celery pip install celery flask redis 二. celery简介 Celery是个异步分布式任务队 ...

  4. Python学习笔记 - day14 - Celery异步任务

    Celery概述 关于celery的定义,首先来看官方网站: Celery(芹菜) 是一个简单.灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具. 简单来看,是一个基于pyt ...

  5. 异步分布式队列Celery

    异步分布式队列Celery 转载地址 Celery 是什么? 官网 Celery 是一个由 Python 编写的简单.灵活.可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具 ...

  6. Python开发异步任务Celery的使用教程!

    1. 生产者消费者设计模式 最常用的解耦方式之一,寻找中间人(broker)搭桥,保证两个业务没有直接关联.我们称这一解耦方式为:生产者消费者设计模式 2.中间人broker 示例:此处演示Redis ...

  7. Python Celery队列

    Celery队列简介: Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery. 使用 ...

  8. Django使用Celery异步任务队列

    1  Celery简介 Celery是异步任务队列,可以独立于主进程运行,在主进程退出后,也不影响队列中的任务执行. 任务执行异常退出,重新启动后,会继续执行队列中的其他任务,同时可以缓存停止期间接收 ...

  9. Celery异步的分布式任务调度理解

    什么是Celery呢? Celery是一个用Python开发的异步的分布式任务调度模块. Celery本身不包含消息服务,使用第三方消息服务,也就是Broker,来传递任务,目前支持的有Rebbimq ...

随机推荐

  1. Tulpar-web渗透小工具

    首先git clone一下,项目地址:https://github.com/anilbaranyelken/tulpar 下载完后打开文件 然后安装所需的Python模块 安装完成后先看一下帮助 命令 ...

  2. java 高并发解决方案

    对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研 ...

  3. 前端工作准备-foxmail登陆失败汇总

    foxmail 管理邮箱账号的一个工具软件, 但是在登陆的时候总是遇到明明账号密码没有问题,却总是报错,这里我登陆的时候的集中解决方法总结下: pop和imap 是邮箱的两种协议,大多选imap协议, ...

  4. js处理小数加减时精度失真

    最近公司业务有用js处理数据加减,但有时候会出现很多位小数:后来发现是js处理小数时精度失真:为了后边不在犯类似错误,笔者觉得有必要记录下处理方法,当然处理方法有很多种,这里笔者找了一种较为简洁的方法 ...

  5. 在线HTTP POST/GET接口测试工具

    在线HTTP POST/GET接口测试工具 http://www.atool.org/httptest.php

  6. java Integer类的缓存(转)

    首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = ...

  7. idea写中文到mysql乱码

    idea中中文写入到mysql乱码 参考如下链接: https://segmentfault.com/q/1010000006174975/a-1020000006184639

  8. linux lvs 配置

    redhatAS4.2 安装集群LVS 环境描述: 本文在配置LVS时使用三台linux,一台做Directorserver (192.168.0.25) ,两台做realserver(192.168 ...

  9. Nginx 模块开发

    Nginx 模块概述 Nginx 模块有三种角色: 处理请求并产生输出的 Handler 模块 : 处理由  Handler  产生的输出的 Filter (滤波器)模块: 当出现多个后台 服务器时, ...

  10. 基于 EntityFramework 的数据库主从读写分离架构 - 目录

    基于 EntityFramework 的数据库主从读写分离架构       回到目录,完整代码请查看(https://github.com/cjw0511/NDF.Infrastructure)中的目 ...