Илья Григорьев@ilyagrig2000
Разработчик в Яндекс Телемосте
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Бэкенд разработчик
Java
Базы данных
Высоконагруженные системы
Java Spring Framework
REST
Golang
Docker
Linux
Python
Git
В thread local переменной сохраняется дедлайн работы потока (текущее время + заданный таймаут). Далее для всех сетевых запросов выставляется таймаут равный оставшемуся времени работы потока. Можно сделать удобную реализацию, чтобы thread local timeout автоматически учитывался во всех клиентах и jdbcTemplate. Так же проверки на thread local timeout вручную добавляются в time consuming операциях, например на каждой итерации цикла. Если время работы потока вышло, то выбрасывается ThreadLocalTimeoutException, который завершает работу этого потока. Если запускаются параллельные потоки, то в них прокидывается таймаут равный исходному таймауту минус уже прошедшее время.
Это пасхалочка)