TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #401 · 15 дек.

Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач. Она работает в нескольких режимах. 1. Самый простой - ждем завершения всех задач async def main(): tasks = [asyncio.create_task(do_it(i)) for i in range(10)] done, pending = await asyncio.wait( tasks, return_when=asyncio.ALL_COMPLETED ) for task in done: try: print(task.result()) except Exception as e: print(e) Очень похоже на gather, но работает не так. ▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done ▫️не гарантирует порядок результатов так как оба объекта это set ▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат. 2. Ждем завершения первой задачи, даже если там ошибка. async def main(): tasks = [asyncio.create_task(do_it(i)) for i in range(3)] done, pending = await asyncio.wait( tasks, return_when=asyncio.FIRST_COMPLETED ) # в done может быть несколько задач! for task in done: try: print(task.result()) except Exception as e: print(f"Fail: {e}") # Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать for task in pending: task.cancel() В сете done будут таски которые успели завершится, причем как успешно так и нет. 3. До первой ошибки. Тоже самое, но с аргументом FIRST_EXCEPTION done, pending = await asyncio.wait( tasks, return_when=asyncio.FIRST_EXCEPTION ) Функция завершается как только первая задача упадет с ошибкой. Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные. ↗️ Полный листинг примеров здесь #async

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #cgroups

当前筛选 #cgroups清除筛选
DOFH - DevOps from hell

@dofh_ru · Post #3937 · 24.11.2025 г., 06:45

Почему мое приложение на 2 vCPU работает быстрее в виртуалке, чем в контейнере? С ростом популярности Kubernetes и контейнеров многие команды не только разрабатывают и разворачивают новые приложения сразу под Kubernetes, но и переносят туда уже существующие сервисы. Эти сервисы до этого могли работать на bare metal серверах или на виртуальных машинах. Контейнеры реализуют идею «Собрал один раз — запускай где угодно», что позволяет командам разработки и эксплуатации управлять приложениями легче и более системно. Но довольно часто после переноса приложения как есть в Kubernetes производительность вдруг оказывается ниже ожидаемой. Эта заметка в первую очередь смотрит на проблему со стороны CPU: почему при переносе сервисов из VM в мир Kubernetes (контейнеров) могут возникнуть определённые сложности и как они могут привести к просадке в производительности. Внутренние узкие места самого приложения — сетевой ввод-вывод, дисковый ввод-вывод и тому подобное — остаются за рамками обсуждения. https://telegra.ph/Pochemu-moe-prilozhenie-na-2-vCPU-rabotaet-bystree-v-virtualke-chem-v-kontejnere-11-24 #ит_статьи#devops#kubernetes#performance#numa#cgroups#cpulimit