mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-07-27 15:45:16 -04:00
Move background update handling out of store
This commit is contained in:
parent
8863624f78
commit
4a33a6dd19
27 changed files with 281 additions and 200 deletions
|
@ -24,8 +24,7 @@ from canonicaljson import json
|
|||
from twisted.internet import defer
|
||||
|
||||
from synapse.api.errors import SynapseError
|
||||
from synapse.storage._base import make_in_list_sql_clause
|
||||
from synapse.storage.background_updates import BackgroundUpdateStore
|
||||
from synapse.storage._base import SQLBaseStore, make_in_list_sql_clause
|
||||
from synapse.storage.engines import PostgresEngine, Sqlite3Engine
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -36,7 +35,7 @@ SearchEntry = namedtuple(
|
|||
)
|
||||
|
||||
|
||||
class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
||||
class SearchBackgroundUpdateStore(SQLBaseStore):
|
||||
|
||||
EVENT_SEARCH_UPDATE_NAME = "event_search"
|
||||
EVENT_SEARCH_ORDER_UPDATE_NAME = "event_search_order"
|
||||
|
@ -49,10 +48,10 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
if not hs.config.enable_search:
|
||||
return
|
||||
|
||||
self.register_background_update_handler(
|
||||
self.db.updates.register_background_update_handler(
|
||||
self.EVENT_SEARCH_UPDATE_NAME, self._background_reindex_search
|
||||
)
|
||||
self.register_background_update_handler(
|
||||
self.db.updates.register_background_update_handler(
|
||||
self.EVENT_SEARCH_ORDER_UPDATE_NAME, self._background_reindex_search_order
|
||||
)
|
||||
|
||||
|
@ -61,9 +60,11 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
# a GIN index. However, it's possible that some people might still have
|
||||
# the background update queued, so we register a handler to clear the
|
||||
# background update.
|
||||
self.register_noop_background_update(self.EVENT_SEARCH_USE_GIST_POSTGRES_NAME)
|
||||
self.db.updates.register_noop_background_update(
|
||||
self.EVENT_SEARCH_USE_GIST_POSTGRES_NAME
|
||||
)
|
||||
|
||||
self.register_background_update_handler(
|
||||
self.db.updates.register_background_update_handler(
|
||||
self.EVENT_SEARCH_USE_GIN_POSTGRES_NAME, self._background_reindex_gin_search
|
||||
)
|
||||
|
||||
|
@ -153,7 +154,7 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
"rows_inserted": rows_inserted + len(event_search_rows),
|
||||
}
|
||||
|
||||
self._background_update_progress_txn(
|
||||
self.db.updates._background_update_progress_txn(
|
||||
txn, self.EVENT_SEARCH_UPDATE_NAME, progress
|
||||
)
|
||||
|
||||
|
@ -164,7 +165,7 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
)
|
||||
|
||||
if not result:
|
||||
yield self._end_background_update(self.EVENT_SEARCH_UPDATE_NAME)
|
||||
yield self.db.updates._end_background_update(self.EVENT_SEARCH_UPDATE_NAME)
|
||||
|
||||
return result
|
||||
|
||||
|
@ -208,7 +209,9 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
if isinstance(self.database_engine, PostgresEngine):
|
||||
yield self.db.runWithConnection(create_index)
|
||||
|
||||
yield self._end_background_update(self.EVENT_SEARCH_USE_GIN_POSTGRES_NAME)
|
||||
yield self.db.updates._end_background_update(
|
||||
self.EVENT_SEARCH_USE_GIN_POSTGRES_NAME
|
||||
)
|
||||
return 1
|
||||
|
||||
@defer.inlineCallbacks
|
||||
|
@ -244,7 +247,7 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
|
||||
yield self.db.runInteraction(
|
||||
self.EVENT_SEARCH_ORDER_UPDATE_NAME,
|
||||
self._background_update_progress_txn,
|
||||
self.db.updates._background_update_progress_txn,
|
||||
self.EVENT_SEARCH_ORDER_UPDATE_NAME,
|
||||
pg,
|
||||
)
|
||||
|
@ -274,7 +277,7 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
"have_added_indexes": True,
|
||||
}
|
||||
|
||||
self._background_update_progress_txn(
|
||||
self.db.updates._background_update_progress_txn(
|
||||
txn, self.EVENT_SEARCH_ORDER_UPDATE_NAME, progress
|
||||
)
|
||||
|
||||
|
@ -285,7 +288,9 @@ class SearchBackgroundUpdateStore(BackgroundUpdateStore):
|
|||
)
|
||||
|
||||
if not finished:
|
||||
yield self._end_background_update(self.EVENT_SEARCH_ORDER_UPDATE_NAME)
|
||||
yield self.db.updates._end_background_update(
|
||||
self.EVENT_SEARCH_ORDER_UPDATE_NAME
|
||||
)
|
||||
|
||||
return num_rows
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue