Size: a a a

2020 June 10

N

Nick Name in aiogram [ru]
Технопёс
Если у тебя есть блокирующая операция, ее стоит вынести в отдельный поток, используя запуск в executor из concurrent.futures

loop.run_in_executor по авайту сразу отдаст Future-псевдозаглушку, которая позволит работать как с асинхронным кодом, просто вычисляться будет не тут же, а в соседнем треде, и просто ждать ожидать результат
про первое понял, про второе нет.
и сразу вопрос: можно ли заменить concurrent.futures на обычный asyncio.gather()?
источник

D

Dmitry 🇷🇺 in aiogram [ru]
Forevka ÐΞV
когда уже с телеги сделают дискорд...
Из дискорда в телеге мне не хватает одной лишь фичи. Set name для отдельного чата. В остальном странно сравнивать с телегой то, где нет реплаев
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Кстати раз уж заговорили, вот у меня есть код для рассылки в начале игры всем командам сообщение, примерно такой:
for team in teams:
   await bot.send_message(team.chat_id, text)
Он сразу отправляет всем не дожидаясь ответа или последовательно?
источник

Т

Технопёс in aiogram [ru]
Nick Name
про первое понял, про второе нет.
и сразу вопрос: можно ли заменить concurrent.futures на обычный asyncio.gather()?
1) увы
2) concurrent.futures это место, где ты можешь взять, например, ThreadPoolExecutor, как ты собрался модулем заменять asyncio.gather? А главное с какой целью?
источник

Т

Технопёс in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Кстати раз уж заговорили, вот у меня есть код для рассылки в начале игры всем командам сообщение, примерно такой:
for team in teams:
   await bot.send_message(team.chat_id, text)
Он сразу отправляет всем не дожидаясь ответа или последовательно?
Последовательно
источник

Т

Технопёс in aiogram [ru]
Всем это asyncio.gather
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
так и думал, надо поправить
источник

R

Robert B. Garza in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Кстати раз уж заговорили, вот у меня есть код для рассылки в начале игры всем командам сообщение, примерно такой:
for team in teams:
   await bot.send_message(team.chat_id, text)
Он сразу отправляет всем не дожидаясь ответа или последовательно?
tasks = [await bot.send_message(team.chat_id, text) for team in teams]
await asyncio.gather(*tasks)
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Robert B. Garza
tasks = [await bot.send_message(team.chat_id, text) for team in teams]
await asyncio.gather(*tasks)
да, я понял
источник

Т

Технопёс in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
так и думал, надо поправить
В момент использования «await», управление возвращается обратно в цикл событий, потому что пока не придет результат ждать тут нечего, асинк на 99% был изобретен чтобы делать полезную работу в моменты простоя. Ничего не стоит послать запрос и сидеть тупить пока сервер там собирается с мыслями.
Это я к тому, что на каждой итерации у тебя случается застой в месте авайта. Луп ждет, пока будет результат, чтобы работать дальше, делая в этот момент другую работу
источник

Т

Технопёс in aiogram [ru]
Robert B. Garza
tasks = [await bot.send_message(team.chat_id, text) for team in teams]
await asyncio.gather(*tasks)
Нет
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Robert B. Garza
tasks = [await bot.send_message(team.chat_id, text) for team in teams]
await asyncio.gather(*tasks)
await в компрехе лишний
источник

R

Robert B. Garza in aiogram [ru]
а да
источник

Т

Технопёс in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
await в компрехе лишний
+
источник

R

Robert B. Garza in aiogram [ru]
без эвейт
источник

N

Nick Name in aiogram [ru]
Технопёс
1) увы
2) concurrent.futures это место, где ты можешь взять, например, ThreadPoolExecutor, как ты собрался модулем заменять asyncio.gather? А главное с какой целью?
взяну я ThreadPoolExecutor, но asyncio.gather() же тоже типа запускает действие отдельно типа от главного лупа (последние слова не воспринимать всерьез)
источник

Т

Технопёс in aiogram [ru]
Nick Name
взяну я ThreadPoolExecutor, но asyncio.gather() же тоже типа запускает действие отдельно типа от главного лупа (последние слова не воспринимать всерьез)
А может ты просто доку осилишь, горе-практик?
источник

N

Nick Name in aiogram [ru]
Технопёс
А может ты просто доку осилишь, горе-практик?
читал я доку по gather, там написано типа "запуск асинк функций где-то там"
источник

Т

Технопёс in aiogram [ru]
Nick Name
читал я доку по gather, там написано типа "запуск асинк функций где-то там"
источник

T

Tishka17 in aiogram [ru]
Nick Name
читал я доку по gather, там написано типа "запуск асинк функций где-то там"
в этом же лупе
источник