diff --git a/docs/changelog.rst b/docs/changelog.rst --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -21,6 +21,7 @@ fixes - fixed __future__ import error on rcextensions - made simplejson required lib for speedup on JSON encoding - fixes #449 bad regex could get more than revisions from parsing history +- don't clear DB session when CELERY_EAGER is turned ON 1.3.5 (**2012-05-10**) ---------------------- diff --git a/rhodecode/__init__.py b/rhodecode/__init__.py --- a/rhodecode/__init__.py +++ b/rhodecode/__init__.py @@ -89,6 +89,7 @@ BACKENDS = { } CELERY_ON = False +CELERY_EAGER = False # link to config for pylons CONFIG = {} diff --git a/rhodecode/config/environment.py b/rhodecode/config/environment.py --- a/rhodecode/config/environment.py +++ b/rhodecode/config/environment.py @@ -47,6 +47,7 @@ def load_environment(global_conf, app_co # store some globals into rhodecode rhodecode.CELERY_ON = str2bool(config['app_conf'].get('use_celery')) + rhodecode.CELERY_EAGER = str2bool(config['app_conf'].get('celery.always.eager')) config['routes.map'] = make_map(config) config['pylons.app_globals'] = app_globals.Globals(config) diff --git a/rhodecode/lib/celerylib/__init__.py b/rhodecode/lib/celerylib/__init__.py --- a/rhodecode/lib/celerylib/__init__.py +++ b/rhodecode/lib/celerylib/__init__.py @@ -35,7 +35,7 @@ from hashlib import md5 from decorator import decorator from rhodecode.lib.vcs.utils.lazy import LazyProperty -from rhodecode import CELERY_ON +from rhodecode import CELERY_ON, CELERY_EAGER from rhodecode.lib.utils2 import str2bool, safe_str from rhodecode.lib.pidlock import DaemonLock, LockHeld from rhodecode.model import init_model @@ -122,7 +122,7 @@ def dbsession(func): ret = func(*fargs, **fkwargs) return ret finally: - if CELERY_ON: + if CELERY_ON and CELERY_EAGER is False: meta.Session.remove() return decorator(__wrapper, func) diff --git a/rhodecode/lib/celerylib/tasks.py b/rhodecode/lib/celerylib/tasks.py --- a/rhodecode/lib/celerylib/tasks.py +++ b/rhodecode/lib/celerylib/tasks.py @@ -39,7 +39,7 @@ from pylons.i18n.translation import _ from rhodecode.lib.vcs import get_backend -from rhodecode import CELERY_ON +from rhodecode import CELERY_ON, CELERY_EAGER from rhodecode.lib.utils2 import safe_str from rhodecode.lib.celerylib import run_task, locked_task, dbsession, \ str2bool, __get_lockkey, LockHeld, DaemonLock, get_session