Функция 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
报道称微软终止 Win11 电话激活服务,24 年历史经典验证方式谢幕
消息源 @TheBobPony 于 12 月 21 日在 X 平台发布推文,爆料称微软已悄然终止对 Windows 及旗下所有软件产品的电话激活服务, 这一始于 Windows XP 时代的经典验证方式正式谢幕。 IT之家援引博文介绍,电话激活的机制本质上是验证软件许可条款合规性的过程。系统通过将产品密钥与设备硬件绑定,以防止同一密钥在多台设备上违规使用。
标签:#win11
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
微软全面放开,Win10/Win11 硬件合规设备获推 25H2 新版
微软已向所有兼容的 Windows 10 和 11 设备开放 Windows 11 25H2 更新。 用户现在可以通过 Windows Update 设置手动更新。 此更新保留了 Windows 11 的原始硬件要求,但高级 AI 功能可能需要更强大的处理器或 NPU。
标签:#win11
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
初探记事本 AI 流式生成:首批限 Copilot+ PC 设备,微软承诺未来将覆盖所有 Win11 设备
微软正在将包括“流式生成”在内的 AI 功能集成到 Windows 11 记事本应用程序中,允许类似 ChatGPT 的实时 AI 文本生成。目前仅限于 Copilot+ 电脑,微软计划将可用性扩展到所有 Windows 11 设备。然而,此举引发了争议,一些用户质疑在传统简单的文本编辑器中添加 AI。
标签:#win11
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot