У нас есть система, которая позволяет оператору останавливать длительное задание Spring Batch, используя JobExplorer
для получения ссылки на JobExecution
и вызывая stop()
. Затем в наших заданиях есть код, который использует JobExplorer
, чтобы получить актуальную копию JobExecution
, чтобы проверить, не было ли оно помечено как STOPPING.
Наша проблема заключается в блокировке на таблицы метаданных в Microsoft SQL Server 2016. Каждый выбор выполняет общую блокировку страницы. Все, что я смог найти об изменении уровня блокировки, говорит об использовании подсказки в операторе SELECT
. Но Spring Batch создает оператор, а не наш код.
Есть ли способ указать Spring Batch использовать параллельный доступ только для чтения при выполнении операторов SELECT
? Если нет, то есть ли какой-то механизм, кроме написания нашего JobExplorer
для выполнения sh этого?