diff options
-rw-r--r-- | mediagoblin/app.py | 8 | ||||
-rw-r--r-- | mediagoblin/celery_setup/__init__.py | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 640ffc45..714404de 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +import os import urllib import routes @@ -138,7 +139,12 @@ def paste_app_factory(global_config, **app_config): raise ImproperlyConfigured( "One of direct_remote_path or direct_remote_paths must be provided") - setup_celery_from_config(app_config, global_config) + if asbool(os.environ.get('CELERY_ALWAYS_EAGER')): + setup_celery_from_config( + app_config, global_config, + force_celery_always_eager=True) + else: + setup_celery_from_config(app_config, global_config) mgoblin_app = MediaGoblinApp( connection, db, diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py index 551b2741..1a77cc62 100644 --- a/mediagoblin/celery_setup/__init__.py +++ b/mediagoblin/celery_setup/__init__.py @@ -76,6 +76,7 @@ DEFAULT_SETTINGS_MODULE = 'mediagoblin.celery_setup.dummy_settings_module' def setup_celery_from_config(app_config, global_config, settings_module=DEFAULT_SETTINGS_MODULE, + force_celery_always_eager=False, set_environ=True): """ Take a mediagoblin app config and the global config from a paste @@ -85,6 +86,7 @@ def setup_celery_from_config(app_config, global_config, - app_config: the application config section - global_config: the entire paste config, all sections - settings_module: the module to populate, as a string + - - set_environ: if set, this will CELERY_CONFIG_MODULE to the settings_module """ @@ -136,6 +138,9 @@ def setup_celery_from_config(app_config, global_config, celery_imports = celery_settings.setdefault('CELERY_IMPORTS', []) celery_imports.extend(MANDATORY_CELERY_IMPORTS) + if force_celery_always_eager: + celery_settings['CELERY_ALWAYS_EAGER'] = True + __import__(settings_module) this_module = sys.modules[settings_module] |