X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/b8686c19a08a170692ea9daec33413758ea7e5eb..d648561a87bbe69dd0e9d156bfb8910ed304cbd3:/src/nominatim_db/clicmd/replication.py diff --git a/src/nominatim_db/clicmd/replication.py b/src/nominatim_db/clicmd/replication.py index 581c731e..ba4c7730 100644 --- a/src/nominatim_db/clicmd/replication.py +++ b/src/nominatim_db/clicmd/replication.py @@ -13,6 +13,7 @@ import datetime as dt import logging import socket import time +import asyncio from ..db import status from ..db.connection import connect @@ -123,7 +124,7 @@ class UpdateReplication: return update_interval - def _update(self, args: NominatimArgs) -> None: + async def _update(self, args: NominatimArgs) -> None: # pylint: disable=too-many-locals from ..tools import replication from ..indexer.indexer import Indexer @@ -161,7 +162,7 @@ class UpdateReplication: if state is not replication.UpdateState.NO_CHANGES and args.do_index: index_start = dt.datetime.now(dt.timezone.utc) - indexer.index_full(analyse=False) + await indexer.index_full(analyse=False) with connect(dsn) as conn: status.set_indexed(conn, True) @@ -172,8 +173,7 @@ class UpdateReplication: if state is replication.UpdateState.NO_CHANGES and \ args.catch_up or update_interval > 40*60: - while indexer.has_pending(): - indexer.index_full(analyse=False) + await indexer.index_full(analyse=False) if LOG.isEnabledFor(logging.WARNING): assert batchdate is not None @@ -196,5 +196,5 @@ class UpdateReplication: if args.check_for_updates: return self._check_for_updates(args) - self._update(args) + asyncio.run(self._update(args)) return 0