Explorar o código

[result][database] Fixes database backend .as_uri()

Ask Solem %!s(int64=9) %!d(string=hai) anos
pai
achega
beb450be0d
Modificáronse 2 ficheiros con 7 adicións e 6 borrados
  1. 3 2
      celery/backends/base.py
  2. 4 4
      celery/backends/database/__init__.py

+ 3 - 2
celery/backends/base.py

@@ -115,8 +115,9 @@ class Backend(object):
         """Return the backend as an URI, sanitizing the password or not"""
         # when using maybe_sanitize_url(), "/" is added
         # we're stripping it for consistency
-        return (self.url if include_password
-                else maybe_sanitize_url(self.url).rstrip("/"))
+        if self.url:
+            return (self.url if include_password
+                    else maybe_sanitize_url(self.url).rstrip("/"))
 
     def mark_as_started(self, task_id, **meta):
         """Mark a task as started"""

+ 4 - 4
celery/backends/database/__init__.py

@@ -80,7 +80,7 @@ class DatabaseBackend(BaseBackend):
             expires_type=maybe_timedelta, **kwargs
         )
         conf = self.app.conf
-        self.dburi = url or dburi or conf.sqlalchemy_dburi
+        self.url = url or dburi or conf.sqlalchemy_dburi
         self.engine_options = dict(
             engine_options or {},
             **conf.sqlalchemy_engine_options or {})
@@ -93,14 +93,14 @@ class DatabaseBackend(BaseBackend):
         Task.__table__.name = tablenames.get('task', 'celery_taskmeta')
         TaskSet.__table__.name = tablenames.get('group', 'celery_tasksetmeta')
 
-        if not self.dburi:
+        if not self.url:
             raise ImproperlyConfigured(
                 'Missing connection string! Do you have the'
                 ' sqlalchemy_dburi setting set to a real value?')
 
     def ResultSession(self, session_manager=SessionManager()):
         return session_manager.session_factory(
-            dburi=self.dburi,
+            dburi=self.url,
             short_lived_sessions=self.short_lived_sessions,
             **self.engine_options
         )
@@ -189,7 +189,7 @@ class DatabaseBackend(BaseBackend):
 
     def __reduce__(self, args=(), kwargs={}):
         kwargs.update(
-            dict(dburi=self.dburi,
+            dict(dburi=self.url,
                  expires=self.expires,
                  engine_options=self.engine_options))
         return super(DatabaseBackend, self).__reduce__(args, kwargs)