Size: a a a

Rust — русскоговорящее сообществo

2020 March 15

BD

Berkus Decker in Rust — русскоговорящее сообществo
thread:spawn запускает тред, в новом треде запускается футурка на tokio экзекьюторе, потом тред заспауненй видимо умирае
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
а футурка наверное дропается и помирае
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Мне не совсем понятно, как вообще так асинхронный код может взаимодействовать друг с другом, когда запускается совсем в другом потоке
источник

MF

Max Frai in Rust — русскоговорящее сообществo
И если случайно вызвать блокирующий метод внутри some_async_logic, но который запущен в новом потоке, приостановит ли это main async?
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Max Frai
Мне не совсем понятно, как вообще так асинхронный код может взаимодействовать друг с другом, когда запускается совсем в другом потоке
если ты можешь дернуть экзекьютор из другого потока он просто зашедулит выполнение футуры у себя
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Max Frai
И если случайно вызвать блокирующий метод внутри some_async_logic, но который запущен в новом потоке, приостановит ли это main async?
А здесь как? Замедлится весь рантайм, даже если запстим в отдельном потоке?
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Max Frai
А здесь как? Замедлится весь рантайм, даже если запстим в отдельном потоке?
ты только _постишь_ в отдельном потоке, выполняется футурка все равно на треде(-ах) экзекьютора
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
и экзекьюторный тред заблочится, если он один - то все встанет
источник

MF

Max Frai in Rust — русскоговорящее сообществo
спасибо
источник

d

drjackild in Rust — русскоговорящее сообществo
Ребзи, а кто-то на AWS Lambda раст крутил? Впихнул на работе добровольно-принудительно Rust, как лямбда-функцию для ресайза имеджей, написал две версии - на питоне и на расте, раст версия работает в два раза медленней (цикл: загрузка имеджа в память, кроп до нужного соотношения сторон, ресайз, загрузка на с3). Не полнимаю - то ли это из-за того, что он кастомный рантайм тянет туда, то ли из-за моих кривых рук (скорее второе, конечно)
источник

d

drjackild in Rust — русскоговорящее сообществo
код практически идентичен (я написал на расте для начала, потом переписал на питоне почти один в один)
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
а деплоится он как у тебя?
источник

d

drjackild in Rust — русскоговорящее сообществo
собираю зипник (билдится в докер контейнере, потом вываливает в target/lambda билд), ручками добавляю в функцию
источник

d

drjackild in Rust — русскоговорящее сообществo
это пока proof-of-concept, могу даже код показать)
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
если он в релизном варианте собран то должен быть достаточно быстр
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
если там зипник не огромный
источник

d

drjackild in Rust — русскоговорящее сообществo
основные потери там на I/O получаются, скачать оригинал, потом загрузить в S3 бакет ресайзнутое изображение, но идентичные код на питоне работает быстрее, блин
источник

d

drjackild in Rust — русскоговорящее сообществo
Berkus Decker
если там зипник не огромный
зипник 3.5МБ, на питоне 15МБ зипник (он тащит Pillow и boto3 с собой в зависимостях)
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
надо смотреть код тогда чтоль
источник

d

drjackild in Rust — русскоговорящее сообществo
ща на гист кину
источник