Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Бэкенд разработчик
Java
Базы данных
Высоконагруженные системы
Java Spring Framework
REST
Golang
Docker
Linux
Python
Git
В thread local переменной сохраняется дедлайн работы потока (текущее время + заданный таймаут). Далее для всех сетевых запросов выставляется таймаут равный оставшемуся времени работы потока. Можно сделать удобную реализацию, чтобы thread local timeout автоматически учитывался во всех клиентах и jdbcTemplate. Так же проверки на thread local timeout вручную добавляются в time consuming операциях, например на каждой итерации цикла. Если время работы потока вышло, то выбрасывается ThreadLocalTimeoutException, который завершает работу этого потока. Если запускаются параллельные потоки, то в них прокидывается таймаут равный исходному таймауту минус уже прошедшее время.
Это пасхалочка)