него выделяется поток из пула, который создан для сервера, если я правильно понимаю.
Допустим, внутри хэндлера я хочу сделать один запрос к базе синхронный, а потом, если всё хорошо, то другой запрос.
Нужно ли где-то использовать web::block?
Если нужно, то как это сделать лучше?
web::block это вроде реализация тредпула, вроде так и должно быть
Написано execute blocking function on a thread pool Я просто не совсем понимаю… У меня под реквест уже поток выделяется по умолчанию ведь, а это дополнительно ещё выделит поток под обращение в базу по идее🤔 Нужно ли это вообще использовать, если эти запросы в бд должны быть последовательными…
Поток выделяется из основного тредпула, можно его забить блокирующими операциями
Есть запрос на эндпоинт. Даже без web::block под него выделен отдельный поток, так? Если в хендлере мне нужно сделать два последовательных синхронных действия, то я просто могу их просто дёргать без web::block? Если, допустим, внутри хендлера мне нужно сделать какую-то штуку, не блокируя другую логику в хендлере, то я использую web::block и отдаю таску в тредпул. Я правильно понял?
под него выделен поток из пула потоков, он переключается на другие таски при выполнении .await
web::block - может пригодиться, когда надо в рамках одной функции распараллелить какие-то вычисления, так как он future возвращает. А вообще у обработчика клиентский соединений свой тред-пул, у клиент к БД - свой (если задействован конечно). Поэтому web::block тут как дополнительный инструмент используется.
Обсуждают сегодня