|
@@ -28,7 +28,7 @@ from kombu.utils import cached_property
|
|
|
|
|
|
from celery import states
|
|
|
from celery.exceptions import ImproperlyConfigured
|
|
|
-from celery.five import string_t
|
|
|
+from celery.five import items, string_t
|
|
|
from celery.utils.timeutils import maybe_timedelta
|
|
|
|
|
|
from .base import BaseBackend
|
|
@@ -92,17 +92,21 @@ class MongoBackend(BaseBackend):
|
|
|
self.options = dict(config, **config.pop('options', None) or {})
|
|
|
|
|
|
# Set option defaults
|
|
|
- if pymongo.version_tuple >= (3, ):
|
|
|
- self.options.setdefault('maxPoolSize', self.max_pool_size)
|
|
|
- else:
|
|
|
- self.options.setdefault('max_pool_size', self.max_pool_size)
|
|
|
- self.options.setdefault('auto_start_request', False)
|
|
|
+ for key, value in items(self._prepare_client_options()):
|
|
|
+ self.options.setdefault(key, value)
|
|
|
|
|
|
self.url = url
|
|
|
if self.url:
|
|
|
# Specifying backend as an URL
|
|
|
self.host = self.url
|
|
|
|
|
|
+ def _prepare_client_options(self):
|
|
|
+ if pymongo.version_tuple >= (3, ):
|
|
|
+ return {'maxPoolSize': self.max_pool_size}
|
|
|
+ else: # pragma: no cover
|
|
|
+ return {'max_pool_size': max_pool_size,
|
|
|
+ 'auto_start_request': False}
|
|
|
+
|
|
|
def _get_connection(self):
|
|
|
"""Connect to the MongoDB server."""
|
|
|
if self._connection is None:
|