|
@@ -23,26 +23,30 @@ class Loader(BaseLoader):
|
|
|
|
|
|
"""
|
|
|
|
|
|
+ def setup_django_env(self, settingsdict):
|
|
|
+ config = dict(DEFAULT_SETTINGS, **settingsdict)
|
|
|
+
|
|
|
+ from django.conf import settings
|
|
|
+ if not settings.configured:
|
|
|
+ settings.configure()
|
|
|
+ for config_key, config_value in config.items():
|
|
|
+ setattr(settings, config_key, config_value)
|
|
|
+ installed_apps = set(list(DEFAULT_SETTINGS["INSTALLED_APPS"]) + \
|
|
|
+ list(settings.INSTALLED_APPS))
|
|
|
+ settings.INSTALLED_APPS = tuple(installed_apps)
|
|
|
+
|
|
|
+ return settings
|
|
|
+
|
|
|
def read_configuration(self):
|
|
|
"""Read configuration from ``celeryconfig.py`` and configure
|
|
|
celery and Django so it can be used by regular Python."""
|
|
|
- config = dict(DEFAULT_SETTINGS)
|
|
|
configname = os.environ.get("CELERY_CONFIG_MODULE",
|
|
|
DEFAULT_CONFIG_MODULE)
|
|
|
celeryconfig = __import__(configname, {}, {}, [''])
|
|
|
usercfg = dict((key, getattr(celeryconfig, key))
|
|
|
for key in dir(celeryconfig)
|
|
|
if wanted_module_item(key))
|
|
|
- config.update(usercfg)
|
|
|
- from django.conf import settings
|
|
|
- if not settings.configured:
|
|
|
- settings.configure()
|
|
|
- for config_key, config_value in usercfg.items():
|
|
|
- setattr(settings, config_key, config_value)
|
|
|
- installed_apps = set(list(DEFAULT_SETTINGS["INSTALLED_APPS"]) + \
|
|
|
- list(settings.INSTALLED_APPS))
|
|
|
- settings.INSTALLED_APPS = tuple(installed_apps)
|
|
|
- return settings
|
|
|
+ return self.setup_django_env(usercfg)
|
|
|
|
|
|
def on_worker_init(self):
|
|
|
"""Imports modules at worker init so tasks can be registered
|