Я создаю высокодоступное и масштабируемое веб-приложение. Он также выдержит довольно значительную нагрузку.
Вопрос в том, как методы @Async
работают в Spring Framework?
Я планирую использовать метод use@Async
для ведения журнала (отправлять журналы на какой-либо внешний сервер ведения журнала). И интересно, как поведет себя система, если много потоков (т.е. пользователей) начнут вызывать эти методы?
Насколько я понимаю, Spring берет предварительно созданные потоки от исполнителя потока. Но что произойдет, если есть только 3 потока, но 1000 одновременных пользователей?
Будет ли метод @Async
заблокирован, если какой-то поток не станет доступным и не начнет выполнять задание? Или «задание» будет помещено в очередь, а основной поток продолжит работу, как и ожидалось?
Любая помощь будет высоко оценена.