Flask+Celery 基本案例【01】

軟件版本

win10
Python3.7
Flask 1.1.1
celery 4.4.1

注意事項

運行本文的案例,你需要一個redis服務器
windows安裝redis可參考菜鳥教程

源碼傳送門

https://gitee.com/creatorgg/Flask_Lab.git

1. 創建虛擬環境

virtualenv venv --no-site-packages

2. 安裝Flask與Celery

# 激活虛擬環境
.\venv\Scripts\activate

pip install flask==1.1.1 celery==4.4.1 redis

# 安裝gevent, 作爲運行celery的附加組件(可選)
pip install gevent

# 安裝python-dotenv,用於從.flaskenv中加載flask的環境變量
pip install python-dotenv

3. 構建一個簡單的Flask應用

項目結構如下,非常簡單
代碼傳送門
https://gitee.com/creatorgg/Flask_Lab.git
在這裏插入圖片描述
backend.__init__.py的內容如下,讓flask收到請求後,調用函數write_something_to_file,這個函數將會由celery執行

from flask import Flask

from backend.sched.tasks import write_something_to_file

app = Flask(__name__)


@app.route('/celery', methods=['GET'])
def test_celery():
    write_something_to_file()
    return 'OK', 200

celery部分的代碼,請自行下載源碼查閱

4. 運行項目

打開兩個命令行終端,均激活虛擬環境,進入到項目所在文件夾,
即包含上圖中backend的文件夾
終端1運行flask run,啓動flask應用
終端2執行如下命令,啓動celery進程

# -A 後指定celery.py所在的包
# --concurrency=4 設置併發量爲4
celery -A backend.sched worker -l info -P gevent --concurrency=4

5. 用瀏覽器測試

打開瀏覽器,輸入http://127.0.0.1:5000/celery
運行成功時,將會在項目內看到一個hello.txt,這是在flask收到請求後,利用celery生成的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章