簡體   English   中英

flask-sqlalchemy:數據未更新

[英]flask-sqlalchemy: data is not updated

我正在結合MySQL和Flask API運行SQLAlchemy。 我們使用模型來處理請求,並使用db.session.add()和db.session.commit()創建和更新更改。

我們還並行運行數據處理-一個無限的while循環,每次運行時都會查詢數據庫(Model.query.filter_by(...)。all())-但是,我們僅獲得在數據庫中而不是更新數據之前-數據本身已經在數據庫中。 如果我們重新啟動應用程序,則會找到新數據。

使用db = SQLAlchemy(app)創建數據庫,然后將其導入並在模型中使用

class Model(db.Model):
    name = db.Column(db.String(255), index=True, unique=True)
    active = db.Column(db.Boolean)

    def create(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.commit()


def run_update():
    while True:

        models = Model.query.filter_by(active=True).all()
        for model in models:
            do_something(model)
            time.sleep(300)

def do_something():
    longtask = threading.Thread(target=long_task)
    longtask.start()


def long_task():
    // Update database here again
    // Task has finished before it is run again.
    time.sleep(10)

如果創建了新條目,則僅在重新啟動應用程序后才在模型查詢中捕獲結果。

我已經嘗試用db.session.query(Model)替換Model.query查詢,但是並沒有改變結果。

提前致謝,

我在while循環的末尾添加了一個db.session.close()-現在重新加載了數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM