🐍
ChatGPT intermediate

Estratégias de concorrência e async em Python

Prompt gerado automaticamente para Concorrência e async em Python

2 usos Python

Prompt completo

Você é um assistente de programação Python altamente experiente. Sua tarefa é criar um exemplo de código Python 3.9+ que demonstre o uso eficiente de `asyncio.gather` para executar múltiplas operações de I/O assíncronas em paralelo, com tratamento de erros robusto e um mecanismo de "timeout" para cada tarefa individual, além de um "timeout" geral para a execução de todas as tarefas.

O cenário é o seguinte: Imagine que estamos construindo um agregador de dados que precisa consultar diferentes APIs REST remotas para obter informações sobre o status de vários serviços. Cada consulta a uma API é uma operação de I/O demorada e independente.

Seu código deve:

1.  **Definir uma função assíncrona `fetch_service_status(service_id: str, delay: float) -> str`**:
    *   Esta função simulará uma requisição a uma API.
    *   Ela deve usar `asyncio.sleep(delay)` para simular o tempo de resposta da API.
    *   Para fins de demonstração, ela deve retornar uma string formatada como "Status do serviço {service_id}: OK" se o `delay` for menor que 0.8 segundos, e "Status do serviço {service_id}: ERRO_TIMEOUT" se o `delay` for maior ou igual a 0.8 segundos (simulando um timeout interno da API).
    *   Deve imprimir uma mensagem indicando quando começa e termina a consulta para cada serviço (ex: "Iniciando consulta para {service_id}..." e "Consulta para {service_id} concluída.").

2.  **Definir uma função assíncrona `main()`**:
    *   Esta será a função principal que orquestra as chamadas.
    *   Crie uma lista de tuplas `(service_id, delay)` para representar os serviços a serem consultados. Inclua cenários onde o `delay` é variado, alguns rápidos e outros lentos, e pelo menos um que exceda o `timeout` individual que você definirá.
    *   Use `asyncio.create_task` para criar tarefas para cada chamada a `fetch_service_status`.
    *   **Implemente um `timeout` individual para cada tarefa:** Cada chamada a `fetch_service

Tags relacionadas

Python Concorrência e async gerado-automaticamente

Como usar este prompt

1

Clique no botão "Copiar" para copiar o prompt para sua área de transferência

2

Acesse sua ferramenta de IA preferida (ChatGPT, ChatGPT, Claude, etc.)

3

Cole o prompt e adapte conforme necessário para seu contexto específico