Я использую SQLAlchemy с MySQL в сочетании с Flask API.Мы используем модели для запросов и создаем и обновляем изменения с помощью db.session.add () и db.session.commit ().
Мы также выполняем параллельную обработку данных - это бесконечное времяцикл, который запрашивает базу данных при каждом запуске (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)
Если новая записьсоздается, результат сохраняется только в запросе модели после перезапуска приложения.
Я уже пытался заменить запросы Model.query на db.session.query (Model), но это не изменило результат.
Заранее спасибо,