[ Celery ] Flask, Celery & SQLAlchemy Example (4/4)
本文為影片筆記,文中內容與影片不一定完全相同。 Database 資料存取的過程中多少會花費一些時間,網頁通常在存取完成後才會更新網頁,這將影響用戶體驗。 這章節主要是模擬存取過程中,使用 Celery 避免使用者花費時間等待。 接續上一章的代碼 # celery_example.py from flask import Flask from flask_celery import make_celery from flask_sqlalchemy import SQLAlchemy from random import choice app = Flask(__name__) app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0' app.config['CELERY_BACKEND'] = 'db+sqlite:///results.sqlite' app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///results.sqlite' # 選擇資料存取的目的地,不需要加連接驅動的名稱,所以沒有 “db+” celery = make_celery(app) db = SQLAlchemy(app) # 建立 Flask app 的另一個延伸 class Results(db.Model): # 建立數據庫 id = db.Column('id', db.Integer, primary_key=True) data = db.Column('data', db.String(50)) @app.route('/process/ ') def process(name): reverse.delay(name) return 'I sent an async request!' @app.route('/insertData') def insertData(): return insert() @celery.task(name=...