Size: a a a

2020 August 23

¯

¯\_(ツ)_/¯ in Rust Async
а. oneshot - один выстрел
источник
2020 August 24

KK

Kirill (Cykooz) Kuzm... in Rust Async
А это нормально, что tokio создаёт кучу тредов в actix-web (наверное по треду на каждый конект)? Мне казалось что в асинхронке как раз должно в основном всё работать в небольшом числе тредов. И то преимущественно треды должны использоваться для блокирующих операций.
источник
2020 August 25

A

Adv0cat in Rust Async
дык вроде в актиксе создаются треды по колличеству физических ядер в машинке, а потом реиспользует их, но всегда можно задать их колличество
источник

A

Adv0cat in Rust Async
или вы о чем то другом?
источник

KK

Kirill (Cykooz) Kuzm... in Rust Async
Да, в актиксе можно указать число воркеров. Я указал 2 и у меня реально 2 треда с именем актикс воркера. А во время нагрузки появляется куча тредов с именем tokio. Когда нагрузка уходит - треды от токио постепенно исчезают.
источник

K

Konstantin in Rust Async
Kirill (Cykooz) Kuzminykh
Да, в актиксе можно указать число воркеров. Я указал 2 и у меня реально 2 треда с именем актикс воркера. А во время нагрузки появляется куча тредов с именем tokio. Когда нагрузка уходит - треды от токио постепенно исчезают.
Ты используешь какие-то блокирующие операции?
источник

KK

Kirill (Cykooz) Kuzm... in Rust Async
Я сам не использую. У меня пока что простой прототип прокси, которая на запрос клиента, с помощью крейта rusoto_s3, читает объект из S3 (стримом) и возвращает его клиенту в ответе.
источник

KK

Kirill (Cykooz) Kuzm... in Rust Async
Разве что внутри rusoto есть что-то блокирующее, но снаружи он весь такой async/await
источник

К

Кирилл in Rust Async
Может, кто-нибудь сталкивался...
tokio::spawn() возвращает JoinHandle<T>. Как можно проверять, выполнилась ли таска? JoinHandle<T> реализует Future, но чтобы его poll-ить, нужен контекст с Waker. Где это всё брать?
источник

A

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

A

Adv0cat in Rust Async
Ну или просто .await добаыить к спавну
источник

MB

Mikail Bagishov in Rust Async
Кирилл
Может, кто-нибудь сталкивался...
tokio::spawn() возвращает JoinHandle<T>. Как можно проверять, выполнилась ли таска? JoinHandle<T> реализует Future, но чтобы его poll-ить, нужен контекст с Waker. Где это всё брать?
Нужно просто проверить, выполнилась или нет?
источник

К

Кирилл in Rust Async
Mikail Bagishov
Нужно просто проверить, выполнилась или нет?
Да
источник

MB

Mikail Bagishov in Rust Async
Кирилл
Да
Тогда можешь вызвать poll с каким-нибудь фейковым контекстом.
источник

К

Кирилл in Rust Async
Adv0cat
Ну можете канал сообщения туда пихнуть и слушать его, а в таске в этот канал пушнуть событие по завершению)
Хочу подождать секунду и проверить, напремер. До конца ждать не хочу.
источник

MB

Mikail Bagishov in Rust Async
Например futures_util дает функцию null_waker_ref
источник

MB

Mikail Bagishov in Rust Async
Кирилл
Хочу подождать секунду и проверить, напремер. До конца ждать не хочу.
А вот если ты хочешь секунду подождать, то сделай select! из JoinHandle и Delay
источник

К

Кирилл in Rust Async
Mikail Bagishov
Например futures_util дает функцию null_waker_ref
О, за это спасибо. То что искал.
источник

К

Кирилл in Rust Async
Mikail Bagishov
А вот если ты хочешь секунду подождать, то сделай select! из JoinHandle и Delay
Delay для примера. Мне именно семантика poll-а нужна.
источник
2020 August 26

A

Agrailag in Rust Async
источник