Mercurial > kallithea
changeset 8819:43ad0cec9037
celery: always drop db session after running a task
Drop dbsession annotation - it could easily be forgotten. This seems simpler
and more reliable.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 28 Dec 2020 00:04:26 +0100 |
parents | 1c43fd986a8e |
children | 0270c714fa17 |
files | kallithea/lib/celerylib/__init__.py kallithea/model/async_tasks.py |
diffstat | 2 files changed, 1 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/lib/celerylib/__init__.py Sun Dec 27 22:58:52 2020 +0100 +++ b/kallithea/lib/celerylib/__init__.py Mon Dec 28 00:04:26 2020 +0100 @@ -66,6 +66,7 @@ try: f_org(*args, **kwargs) finally: + meta.Session.remove() # prevent reuse of auto created db sessions log.info('executed %s task', f_org.__name__) runner = kallithea.CELERY_APP.task(name=f_org.__name__, ignore_result=True)(f_async) @@ -111,15 +112,3 @@ return 'Task with key %s already running' % lockkey return decorator(__wrapper, func) - - -def dbsession(func): - def __wrapper(func, *fargs, **fkwargs): - try: - ret = func(*fargs, **fkwargs) - return ret - finally: - if kallithea.CELERY_APP and not kallithea.CELERY_APP.conf.task_always_eager: - meta.Session.remove() - - return decorator(__wrapper, func)
--- a/kallithea/model/async_tasks.py Sun Dec 27 22:58:52 2020 +0100 +++ b/kallithea/model/async_tasks.py Mon Dec 28 00:04:26 2020 +0100 @@ -55,7 +55,6 @@ @celerylib.task @celerylib.locked_task -@celerylib.dbsession def whoosh_index(repo_location, full_index): index_location = config['index_dir'] WhooshIndexingDaemon(index_location=index_location, @@ -77,7 +76,6 @@ @celerylib.task -@celerylib.dbsession def get_commits_stats(repo_name, ts_min_y, ts_max_y, recurse_limit=100): lockkey = celerylib.__get_lockkey('get_commits_stats', repo_name, ts_min_y, ts_max_y) @@ -233,7 +231,6 @@ @celerylib.task -@celerylib.dbsession def send_email(recipients, subject, body='', html_body='', headers=None, from_name=None): """ Sends an email with defined parameters from the .ini files. @@ -350,7 +347,6 @@ @celerylib.task -@celerylib.dbsession def create_repo(form_data, cur_user): cur_user = db.User.guess_instance(cur_user) @@ -426,7 +422,6 @@ @celerylib.task -@celerylib.dbsession def create_repo_fork(form_data, cur_user): """ Creates a fork of repository using interval VCS methods