def worker(**options):
"Run background worker instance."
from django.conf import settings
if hasattr(settings, 'CELERY_ALWAYS_EAGER') and \
settings.CELERY_ALWAYS_EAGER:
raise click.ClickException(
'Disable CELERY_ALWAYS_EAGER in your '
'settings file to spawn workers.')
from munch.core.celery import app
os.environ['WORKER_TYPE'] = ','.join(options.pop('worker_type')).lower()
pool_cls = options.pop('pool')
worker = app.Worker(
pool_cls=pool_cls, queues=settings.CELERY_DEFAULT_QUEUE, **options)
worker.start()
try:
sys.exit(worker.exitcode)
except AttributeError:
# `worker.exitcode` was added in a newer version of Celery:
# https://github.com/celery/celery/commit/dc28e8a5
# so this is an attempt to be forwards compatible
pass
评论列表
文章目录