Cheguei a fazer somente com uma função para o trabalho, acredito que vou ter que ler mais a respeito e melhorar com os dias o entendimento das funções assíncrona
import asyncio
pedidos = [
{"id": 101, "pagamento_aprovado": True, "estoque_disponivel": True},
{"id": 102, "pagamento_aprovado": True, "estoque_disponivel": False},
{"id": 103, "pagamento_aprovado": False, "estoque_disponivel": True},
{"id": 104, "pagamento_aprovado": True, "estoque_disponivel": True},
{"id": 105, "pagamento_aprovado": False, "estoque_disponivel": False},
]
async def processamento_pedidos(pedidos):
print(f"Processando pedido #{pedidos['id']}...")
if pedidos["pagamento_aprovado"]:
print(f"Pagamento apovado para o pedido #{pedidos['id']}")
if not pedidos["pagamento_aprovado"]:
print(f"Pagamento recusado para pedido #{pedidos['id']}. Pedido cancelado.\n")
return
if pedidos["pagamento_aprovado"] == True and pedidos["estoque_disponivel"] == True:
print(f"Estoque disponivel para o pedido #{pedidos['id']}\n#{pedidos['id']} confirmado! Enviado para entrega\n")
async def main():
tarefas = [asyncio.create_task(processamento_pedidos(p)) for p in pedidos]
await asyncio.gather(*tarefas)
asyncio.run(main())