__init__.py 786 B

1234567891011121314151617181920212223
  1. # -*- coding: utf-8 -*-
  2. """Pool implementation abstract factory, and alias definitions."""
  3. from __future__ import absolute_import, unicode_literals
  4. # Import from kombu directly as it's used
  5. # early in the import stage, where celery.utils loads
  6. # too much (e.g., for eventlet patching)
  7. from kombu.utils.imports import symbol_by_name
  8. __all__ = ('get_implementation',)
  9. ALIASES = {
  10. 'prefork': 'celery.concurrency.prefork:TaskPool',
  11. 'eventlet': 'celery.concurrency.eventlet:TaskPool',
  12. 'gevent': 'celery.concurrency.gevent:TaskPool',
  13. 'solo': 'celery.concurrency.solo:TaskPool',
  14. 'processes': 'celery.concurrency.prefork:TaskPool', # XXX compat alias
  15. }
  16. def get_implementation(cls):
  17. """Return pool implementation by name."""
  18. return symbol_by_name(cls, ALIASES)