您當前位置:寧波在線網 > 微商 > 正文
更多

Python 異步任務神器 Celery 結合Flask使用

2020-03-30 08:16:46 來源: 閱讀:-

說在前頭用Python搞后臺開發的,應該都知道celery的重要性。廢話不多說,搞起。安裝使用pip來安裝,環境python3+Flask-Celery-Helper==1.1.0celery==4.1.0redis==3.0.

說在前頭

用Python搞后臺開發的,應該都知道celery的重要性。廢話不多說,搞起。

安裝

使用pip來安裝,環境python3+

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

準備工作

目錄結構
app
|-__init__.py
|-tasks.py
config.py
celery_runner.py

celery_runner.py

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 os

basedir = 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):
pass

class DevelopmentConfig(Config):
DEBUG = True

class TestingConfig(Config):
TESTING = True

class ProductionConfig(Config):
DEBUG = False

config = {
'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愛好者,點贊,關注,轉發。我會持續更新我日常在項目用到的工具,分享給大家。

推薦閱讀:平板電腦攻略

相關閱讀 read

相關圖庫hot

熱點排行

精彩圖文

下什么app可以赚钱的软件哪个好 3d开奖号码表 30选7走势图选号技巧 上海福彩时时乐单选100期走势图 体彩七星彩中三个 天津11元5开奖结果 江苏快三下载苹果版 俩人玩扑克的新玩法 陕西快乐10分遗漏数据真准网 腾讯分分彩合法吗 宁夏11选五容易出的号码