From 5a02d75f7ce0ab2daa9a4974402fe6924beebd2a Mon Sep 17 00:00:00 2001 From: codl Date: Fri, 11 Aug 2017 00:31:02 +0200 Subject: [PATCH] close sqlalchemy session after a worker's work. closes #4 that was far easier than i anticipated... --- tasks.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index bcc2ca4..6f776fd 100644 --- a/tasks.py +++ b/tasks.py @@ -1,4 +1,4 @@ -from celery import Celery +from celery import Celery, Task from app import app as flaskapp from app import db @@ -31,6 +31,16 @@ if 'SENTRY_DSN' in flaskapp.config: register_logger_signal(sentry) register_signal(sentry) + +class DBTask(Task): + def __call__(self, *args, **kwargs): + try: + super().__call__(*args, **kwargs) + finally: + db.session.close() + +app.Task = DBTask + @app.task(autoretry_for=(TwitterError, URLError)) def fetch_acc(id, cursor=None): acc = Account.query.get(id)