flask异步操作_Python 异步任务神器 Celery 结合Flask使用

说在前头

用Python搞后台开发的,应该都知道celery的重要性。废话不多说,搞起。

安装

使用pip来安装,环境python3+

Flask-Celery-Helper==1.1.0celery==4.1.0redis==3.0.1

准备工作

目录结构app|-__init__.py|-tasks.pyconfig.pycelery_runner.py

celery_runner.py

978f050be306af637b4df44df66142da.png

tasks.py

def task_demo(): print("执行到我了")

__init__.py

from flask_celery import Celery def create_app(config_name): app = Flask(__name__) db.app = app app.config.from_object(config[config_name]) config[config_name].init_app(app)  celery.init_app(app) # 后台任务

config.py

import osbasedir = os.path.abspath(os.path.dirname(__file__))class Config: JSON_AS_ASCII = False SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'CELERY_BROKER_URL = 'redis://:密码@127.0.0.1:6379/11' #使用redis CELERY_RESULT_BACKEND = 'redis://:密码@127.0.0.1:6379/11'#使用redis @staticmethod def init_app(app):passclass DevelopmentConfig(Config): DEBUG = Trueclass TestingConfig(Config): TESTING = Trueclass ProductionConfig(Config): DEBUG = Falseconfig = { 'development': DevelopmentConfig, 'testing': TestingConfig, 'production': ProductionConfig, 'default': DevelopmentConfig}

使用

在根目录下开启celery服务

celery worker -c 2 -A celery_runner --loglevel=info

具体参数,独自去网上找。

调用:

task_demo.apply_async()

使用场景

1.就比如发邮箱这个例子吧。用户点击发邮箱后,后台异步去执行,而不是阻塞等到发完成功后才提示用户说邮箱发送成功。而是马上去异步执行发布邮箱,提示用户去查看邮箱。

2.导出大量订单。你可以后台去执行,并生成excel放在后台,之后提供给客户下载即可。又或者可以用长连接操作提示用户。

。。。

场景很多。我就不一一说明了。

说在最后

假如有帮助到你,或者你也是python爱好者,点赞,关注,转发。我会持续更新我日常在项目用到的工具,分享给大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值