X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/af85ad390fcafbf6d73577b0d5d95c945d6d70b2..28f7e51279e8ffa7eba2d1e3ff6541940eb0e6f5:/nominatim/api/core.py?ds=sidebyside diff --git a/nominatim/api/core.py b/nominatim/api/core.py index 1c0c4423..3481e647 100644 --- a/nominatim/api/core.py +++ b/nominatim/api/core.py @@ -88,7 +88,7 @@ class NominatimAPIAsync: #pylint: disable=too-many-instance-attributes if self.config.get_int('API_POOL_SIZE') == 0: extra_args['poolclass'] = sa.pool.NullPool else: - extra_args['poolclass'] = sa.pool.QueuePool + extra_args['poolclass'] = sa.pool.AsyncAdaptedQueuePool extra_args['max_overflow'] = 0 extra_args['pool_size'] = self.config.get_int('API_POOL_SIZE') @@ -137,6 +137,10 @@ class NominatimAPIAsync: #pylint: disable=too-many-instance-attributes async with engine.begin() as conn: result = await conn.scalar(sa.text('SHOW server_version_num')) server_version = int(result) + if server_version >= 110000: + await conn.execute(sa.text("SET jit_above_cost TO '-1'")) + await conn.execute(sa.text( + "SET max_parallel_workers_per_gather TO '0'")) except (PGCORE_ERROR, sa.exc.OperationalError): server_version = 0 @@ -146,8 +150,6 @@ class NominatimAPIAsync: #pylint: disable=too-many-instance-attributes cursor = dbapi_con.cursor() cursor.execute("SET jit_above_cost TO '-1'") cursor.execute("SET max_parallel_workers_per_gather TO '0'") - # Make sure that all connections get the new settings - await engine.dispose() self._property_cache['DB:server_version'] = server_version