Size: a a a

2021 January 04

GG

Go Go in Rust Async
Но не хотелось бы что-то делать и наступать на какие-то грабли, тратить на это время чтобы потом узнать что к примеру сразу нужно было его юзать потому то и потому то
источник

AI

Alex Ilizarov in Rust Async
Go Go
Раз уж зашёл разговор про async, хочу спросить у знающих, делаю апи на актиксе и использую web::block где нужно как и писал выше, но слышал что в расте очень популярен Токио для этих дел. Подскажите используют ли этот Токио с актиксом, и для каких целей его вообще используют и почему. Знатоки не судите, в расте вторую неделю только
cargo tree
источник

AI

Alex Ilizarov in Rust Async
Go Go
Ну это сам фрейм, а стоит ли менять web::block тот же на Токио или это он тоже
не стоит, актикс все это правильно оборачивает чтобы было удобно и идиоматично
источник

AI

Alex Ilizarov in Rust Async
Go Go
Но не хотелось бы что-то делать и наступать на какие-то грабли, тратить на это время чтобы потом узнать что к примеру сразу нужно было его юзать потому то и потому то
у актикса в пределах одного запроса однопоточное исполнение
источник

AI

Alex Ilizarov in Rust Async
у токио - многопоточное по дефолту
источник

GG

Go Go in Rust Async
Alex Ilizarov
не стоит, актикс все это правильно оборачивает чтобы было удобно и идиоматично
А тоесть web::block это и есть Токио под капотом ?
источник

AI

Alex Ilizarov in Rust Async
Go Go
А тоесть web::block это и есть Токио под капотом ?
весь актикс это токио под капотом
источник

GG

Go Go in Rust Async
Ок спасибо за просвещение 😊 тогда буду изучать что там да как
источник

AI

Alex Ilizarov in Rust Async
Go Go
Ок спасибо за просвещение 😊 тогда буду изучать что там да как
Я точно не знаю детально как, но в общем виде актикс держит N воркеров, каждый из них работает в однопоточном асинхронном режиме. Отдельно актикс держит тредпул. Это пул воркеров для синхронных операций, чтобы не блокировать однопоточные асинхронные воркеры
источник

AI

Alex Ilizarov in Rust Async
актикс запускает однопоточные воркеры чтобы не было оверхеда на дополнительную синхронизацию между потоками.
источник

GG

Go Go in Rust Async
А вообще имеет ли смысл изучать треды раста или почти везде Токио ? Насколько я понял почти везде именно Токио юзает по каким-то причинам а не требы спавнят
источник

AI

Alex Ilizarov in Rust Async
Go Go
А вообще имеет ли смысл изучать треды раста или почти везде Токио ? Насколько я понял почти везде именно Токио юзает по каким-то причинам а не требы спавнят
изучить всегда стоит
источник

AI

Alex Ilizarov in Rust Async
у тебя тредпул это просто набор растовых тредов )
источник

AI

Alex Ilizarov in Rust Async
ты напрямую скорее всего никогда не будешь спавнить потоки в асинхронном коде
источник

AI

Alex Ilizarov in Rust Async
но стоит понимать как оно работает
источник

GG

Go Go in Rust Async
Благодарю за пояснения, так уже намного более понятно
источник

AI

Alex Ilizarov in Rust Async
Go Go
Благодарю за пояснения, так уже намного более понятно
в общем если коротко, желательно в актикс-вебе юзать идиоматичные актикс-вебу вещи. Умные люди уже подумали за тебя, снижая на тебя когнитивную нагрузку. Главное синхронные вызовы всегда оборачивать так или иначе, чтобы не заблокировать асинхронный рантайм.
источник

AI

Alex Ilizarov in Rust Async
Я так себе рандомно вебсервер на актикс-вебе блочил который принимал загрузку файлов
источник

AI

Alex Ilizarov in Rust Async
при низкой нагрузке все хорошо, но стоит побенчить ab и он дедлочился.
источник

AI

Alex Ilizarov in Rust Async
было связано с синхронным мьютексом
источник