aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/app.py8
-rw-r--r--mediagoblin/celery_setup/__init__.py5
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]