首頁>技術>

說在前頭

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

安裝

使用pip來安裝,環境python3+

Flask-Celery-Helper==1.1.0celery==4.1.0redis==3.0.1
準備工作
目錄結構app\t|-__init__.py\t|-tasks.pyconfig.pycelery_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 osbasedir = os.path.abspath(os.path.dirname(__file__))class Config: \t\t\tJSON_AS_ASCII = False \t\t\tSECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'\t\t\tCELERY_BROKER_URL = 'redis://:密碼@127.0.0.1:6379/11' #使用redis \t\t\tCELERY_RESULT_BACKEND = 'redis://:密碼@127.0.0.1:6379/11'#使用redis @staticmethod def init_app(app):\t\t\t\t\tpassclass 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愛好者,點贊,關注,轉發。我會持續更新我日常在專案用到的工具,分享給大家。

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Unity版本使用情況統計