Now you can set CELERY_ALWAYS_EAGER environment variable so that you

don't have to run celeryd at the same time.

This should make Elrond happy ;)
This commit is contained in:
Christopher Allan Webber 2011-05-20 18:49:04 -05:00
parent 6926b23d43
commit 571198c938
2 changed files with 12 additions and 1 deletions

View File

@ -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,6 +139,11 @@ def paste_app_factory(global_config, **app_config):
raise ImproperlyConfigured(
"One of direct_remote_path or direct_remote_paths must be provided")
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(

View File

@ -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]