es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Envíe solicitudes de Python lo más rápido posible.

Este es mi código actual. Envia alrededor de 2300 peticiones por segundo.

from concurrent.futures import ThreadPoolExecutor

import requests
counter = 0
from timer import timer

URL = 'https://httpbin.org/uuid'
def print_result(result):
    global counter
    print(counter, ' ', result, end='\r')

def fetch(session, url):
    with session.get(url) as response:
        global counter
        counter+=1
        printresult(response.statuscode)

@timer(1, 10)
def main():
    with ThreadPoolExecutor(max_workers=450) as executor:
        with requests.Session() as session:
            executor.map(fetch, [session] * 400, [URL] * 400)
            executor.shutdown(wait=False)

¿Hay alguna forma de hacerlo más rápido / más estable?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay varias formas de hacer que el código sea más rápido y estable.

    1. Aumentar el número de trabajadores en el ThreadPoolExecutor. Esto permitirá procesar más solicitudes en paralelo, lo que resultará en tiempos de respuesta más rápidos.

    2. Utilizar una biblioteca HTTP más eficiente como requests-futures, que puede procesar múltiples solicitudes en paralelo.

    3. Utilizar un mecanismo de almacenamiento en caché como Redis para almacenar datos solicitados con frecuencia, lo que puede reducir el número de solicitudes enviadas al servidor.

    4. Utilizar un balanceador de carga como HAProxy para distribuir las solicitudes en varios servidores, lo que puede ayudar a reducir la carga en un solo servidor.

    5. Utilizar un servidor web más eficiente como Nginx para manejar solicitudes de manera más eficiente.

Comments are closed.