Estratégias de concorrência e async em Python

Prompt gerado automaticamente para Concorrência e async em Python

5.0
33 usos
ChatGPT
Usar no ChatGPT
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

Como Usar este Prompt

1

Clique no botão "Copiar Prompt" para copiar o conteúdo completo.

2

Abra sua ferramenta de IA de preferência (ChatGPT e etc.).

3

Cole o prompt e substitua as variáveis (se houver) com suas informações.

Compartilhe

Gostou deste prompt? Ajude outras pessoas a encontrá-lo!

Outros prompts de Python

Continue explorando prompts nesta categoria.

Melhores práticas de code optimization para Python

Prompt gerado automaticamente para Code optimization em Python

Guia para package management em Python

Prompt gerado automaticamente para Package management em Python

Guia para data analysis com pandas em Python

Prompt gerado automaticamente para Data analysis com Pandas em Python