1
resposta

[RESPOSTA]

import asyncio

usuarios = {"Ana":"vip", "João":"ativado", "Carla":"desativado"}

nome = input("Informe o nome do usuario: ").strip()
parametro = input("Informe o status (vip, ativado, desativado): ").strip()
usuarios[nome] = parametro

async def notificador(usuario, status):
    if status == "vip":
        await asyncio.sleep(1)
        print(f"Notificação {status.upper()} para {usuario.capitalize()} enviada!")
    elif status == "ativado":
        await asyncio.sleep(2)
        print(f"Notificação normal para {usuario.capitalize()} enviada!")
    else:
        await asyncio.sleep(3)
        print(f"{usuario.capitalize()} desativou as notificações. Nada foi enviado.")


async def main():
    tarefas = [asyncio.create_task(notificador(usuario, parametro)) for usuario, parametro in usuarios.items()]
    print("Enviando notificação...")
    await asyncio.gather(*tarefas)
    print("Todas as notificações foram processadas!")

asyncio.run(main())
1 resposta

Oi, Mauricio! Como vai?

Agradeço por compartilhar.

Achei muito interessante como você usou asyncio.create_task junto com asyncio.gather para gerenciar várias notificações ao mesmo tempo. Isso deixa o fluxo bem mais realista e eficiente para simular um sistema assíncrono.

Parabéns pela dedicação!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!