Size: a a a

2019 April 01

YL

Yoshi Lyosha in Async Python
иногда подход, который был описан в том примере может помочь. ну когда ты просто делаешь create_tast(coro()) и даёшь возможность лупу самому с ней работать в свободное время
источник

YL

Yoshi Lyosha in Async Python
минус в том, что если ты это не заэвэйтишь - то исключения возникшие в этом таске никуда не передадутся
источник

MG

M G in Async Python
Получается, выполнится задача хорошо, не выполнится тоже хорошо, если не await тить
источник

YL

Yoshi Lyosha in Async Python
сорт оф - да
источник

YL

Yoshi Lyosha in Async Python
в стдерр ты мб получишь сообщение от асинкайо в виде "был эксепшн в такой-то таске, но никто его не увидит"
источник

MG

M G in Async Python
понял.
источник

MG

M G in Async Python
А как насчет с ресурсоемкими задачами? блокирующими
источник

YL

Yoshi Lyosha in Async Python
их лучше в пуле процессов
источник

VS

Vitaliy S in Async Python
M G
А как насчет с ресурсоемкими задачами? блокирующими
Ну у тебя вычисления будут менеджерами ОС распределяться во времени. От них ты никуда не денешься, если у тебя в распоряжении только одно ядро процессора
источник

MG

M G in Async Python
Через Subprocesses нужно будет их запускать верно?
источник

YL

Yoshi Lyosha in Async Python
нет, ты создаёшь пулл процессов и делаешь loop.run_in_executor
источник

VS

Vitaliy S in Async Python
M G
Через Subprocesses нужно будет их запускать верно?
В контексте других концепций - да, но текущий контекст - async python
источник

MG

M G in Async Python
Ок. Попробую сделать сегодня.
источник

VS

Vitaliy S in Async Python
В идеале делегировать такие вычисления другим компонентам
источник
2019 April 07

in Async Python
Всем доброго вечера, я тут захотел прикрутить к своєму скрипту API, что бы запускать ремоутно и задумался об асинхроности. Никогда особо в пайтоне с ней не работал. Но вопрос примерно такой я хочу на пост апи запускать свой скрипт и возращать 202 а скрипт потом запишет результат в базу. Как лучше запускать скрипт asyncio или просто запустить с os.system/subprocess  или concurrent.futures?
источник

🇧S

🇧🇾 Eugene Sobolev in Async Python
По-разному можно, есть еще celery
источник

BG

Bogdan (SirEdvin) Gladyshev in Async Python
Всем доброго вечера, я тут захотел прикрутить к своєму скрипту API, что бы запускать ремоутно и задумался об асинхроности. Никогда особо в пайтоне с ней не работал. Но вопрос примерно такой я хочу на пост апи запускать свой скрипт и возращать 202 а скрипт потом запишет результат в базу. Как лучше запускать скрипт asyncio или просто запустить с os.system/subprocess  или concurrent.futures?
Так вроде лучше не делать
источник

BG

Bogdan (SirEdvin) Gladyshev in Async Python
Ну, если я правильно понял, вы хотите сначала ответить, а потом записать в базу. Мое имхо, лучше сначала таки хоть что-то записать в базу и потом уже ответить
источник

in Async Python
Да, но запись в базу как раз не влияет особо, я использую rocksdb и насколько я понял все write операции асинхронны по дефолту. Мне скорее было интересно бестпрактис для запуска одного ресурсоемкого скрипта через api, я еще думаю как лучше сделать api aiohttp или flask threaded или falsk с gevent. Я понимаю, что все решения подходят в той или иной мере, просто абсурдное желание найти самый лучший вариант 🙂
источник

BG

Bogdan (SirEdvin) Gladyshev in Async Python
Суть в том, что если вы начинаете какую-то сложную операцию, по идее имеет смысл трекать ее статус в персистентном хранилище. То есть если вы ответите по api, что все ОК, а потом запись в бд упадет - это как бы будет очень плохо
источник