Я хотел бы иметь возможность ограничить все запросы Spring jpa определенным сроком. Если запрос занимает больше времени, чем указанный предел, он должен быть отменен. Из того, что я увидел, этого можно достичь с помощью javax.persistence.query.timeout
, и поскольку я нахожусь в контексте Spring:
spring:
jpa:
properties:
javax.persistence.query.timeout: 10000
Это должно ограничить все запросы, выполняемые из репозиториев Spring, до 30 секунд, но это не работает. Этот метод хранилища занимает 20 секунд:
@Query(value = "select count(*) from pg_sleep(20)", nativeQuery = true)
int slowQuery();
Я пробовал с Postgresql 9.6.11 и с Postgresql 10.5.
Есть ли проблемы с этими Postgres версиями? Есть ли другой способ добиться тайм-аута выполнения запроса?