コード例 #1
0
ファイル: backend.py プロジェクト: webcube/django-dockit
 def register_index(self, query_index):
     if self._tables_exist or db_table_exists(RegisteredIndex._meta.db_table): #if the table doesn't exists then we are likely syncing the db
         self._tables_exist = True
         self.index_tasks.register_index(query_index)
         self._register_pending_indexes()
     else:
         self.pending_indexes.add(query_index)
コード例 #2
0
ファイル: backend.py プロジェクト: webcube/django-dockit
 def _register_pending_indexes(self):
     if not self.pending_indexes:
         return
     if not db_table_exists(RegisteredIndex._meta.db_table):
         return
     for query_index in self.pending_indexes:
         self.index_tasks.register_index(query_index)
     self.pending_indexes = set()
コード例 #3
0
ファイル: backend.py プロジェクト: zbyte64/django-dockit
    def _register_pending_indexes(self):
        if not self.pending_indexes:
            return
        if not db_table_exists(RegisteredIndex._meta.db_table):
            return

        router = get_index_router()
        while self.pending_indexes:
            queryset = self.pending_indexes.pop()

            document = queryset.document
            collection = queryset.document._meta.collection
            key = queryset.global_hash()

            # only register if the queryset is still active
            if collection in router.registered_querysets and key in router.registered_querysets[collection]:
                self.index_tasks.register_index(queryset)