From a789c65c9815356686d5f8cbf1f2ed282c4aacca Mon Sep 17 00:00:00 2001 From: Peter Lada Date: Fri, 1 Nov 2019 13:12:48 -0400 Subject: [PATCH 1/2] remove uneeded app context, thus preventing flask from destorying the db session when used with sqlalchemy --- src/flask_rq2/job.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/flask_rq2/job.py b/src/flask_rq2/job.py index c003ebc..75d4559 100644 --- a/src/flask_rq2/job.py +++ b/src/flask_rq2/job.py @@ -15,7 +15,7 @@ try: from flask_cli import ScriptInfo except ImportError: - raise RuntimeError('Cannot import Flask CLI. Is it installed?') + raise RuntimeError("Cannot import Flask CLI. Is it installed?") class FlaskJob(Job): @@ -24,6 +24,7 @@ class FlaskJob(Job): context. This requires setting the ``FLASK_APP`` environment variable. """ + def __init__(self, *args, **kwargs): super(FlaskJob, self).__init__(*args, **kwargs) self.script_info = ScriptInfo() @@ -36,6 +37,5 @@ def load_app(self): return app def perform(self): - app = self.load_app() - with app.app_context(): - return super(FlaskJob, self).perform() + self.load_app() + return super(FlaskJob, self).perform() From 03efac8f8c456bdc3d2f04cafc989dc9ed97943f Mon Sep 17 00:00:00 2001 From: Fil Zembowicz Date: Fri, 8 Nov 2019 16:46:36 -0500 Subject: [PATCH 2/2] Use app_context only when one already isn't present --- src/flask_rq2/job.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/flask_rq2/job.py b/src/flask_rq2/job.py index 75d4559..265a99e 100644 --- a/src/flask_rq2/job.py +++ b/src/flask_rq2/job.py @@ -37,5 +37,8 @@ def load_app(self): return app def perform(self): + if current_app: + return super(FlaskJob, self).perform() self.load_app() - return super(FlaskJob, self).perform() + with app.app_context(): + return super(FlaskJob, self).perform()