1
resposta

Resposta

import asyncio

usuarios = [
    {"nome": "Ana", "vip": True, "notificacoes_ativadas": True},
    {"nome": "João", "vip": False, "notificacoes_ativadas": True},
    {"nome": "Carla", "vip": False, "notificacoes_ativadas": False},
]

async def enviar_notificacao(usuario):
    if not usuario["notificacoes_ativadas"]:
        print(f"{usuario['nome']} desativou as notificações. Nada foi enviado.")
        return
    
    if usuario["vip"]:
        print(f"Notificação VIP para {usuario['nome']} enviada!")
        return
    
    print(f"Notificação normal para {usuario['nome']} enviada!")

async def main():
    print("Enviando notificações...")
    tarefas = [asyncio.create_task(enviar_notificacao(u)) for u in usuarios]
    await asyncio.gather(*tarefas)
    print("Todas as notificações foram processadas!")

asyncio.run(main())
1 resposta

Oi, Ricardo! Como vai?

O seu código ficou bem organizado e mostra que você entendeu como usar tarefas assíncronas para enviar notificações de forma simultânea. A função asyncio.gather() foi usada de forma correta, garantindo que todas as notificações sejam processadas sem bloqueios.

Continue praticando esse conceito, pois ele é muito usado em sistemas que lidam com várias operações ao mesmo tempo.

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