Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
Non-speaking does not equal non-thinking.
They're just as capable of thinking you're an a$$hole as anyone else, so watch your step. 😉
#nonspeaking#nonverbal#Autism#Autistic#ActuallyAutistic#AACsource
#python#4k#aac#apple_music#apple_music_downloader#downloader#m4a#m4v
Gamdl is a free command-line tool to download Apple Music songs in high-quality AAC 256kbps, music videos up to 4K, albums, playlists, and artist content, with synced lyrics (LRC/SRT), rich metadata, and cover art. Install via `pip install gamdl`, add your browser cookies from an active subscription, and run `gamdl [URL]`. It benefits you by letting you enjoy offline playback anywhere without streaming data costs, on any device, with organized files ready for your library.
https://github.com/glomatico/gamdl
Gatekeeping communication methods = time to find a new practitioner. #Autism#Autistic#ActuallyAutistic#nonspeaking#nonverbal#Speechtherapy#AAC#apraxia#dyspraxiasource