Persistência de conexões urllib.request com um servidor HTTP
Eu quero fazer alguns testes de desempenho em um de nossos servidores Web, para ver como o servidor lida com muitas conexões persistentes. Infelizmente, não estou muito familiarizado com HTTP e testes na web. Aqui está o código Python que eu tenho para isso até agora:
import http.client
import argparse
import threading
def make_http_connection():
conn = http.client.HTTPConnection(options.server, timeout=30)
conn.connect()
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="Number of connections to make (integer)")
parser.add_argument("server", type=str, help="Server and port to connect to. Do not prepend \'http://\' for this")
options = parser.parse_args()
for n in range(options.num):
connThread = threading.Thread(target = make_http_connection, args = ())
connThread.daemon = True
connThread.start()
while True:
try:
pass
except KeyboardInterrupt:
break
Minha pergunta principal é esta:Como mantenho essas conexões ativas? Eu defini um tempo limite longo, mas esse é um método muito grosseiro e nem tenho certeza se isso afeta a conexão. Basta solicitar um ou dois bytes de vez em quand
(Além disso, em uma nota não relacionada, existe um procedimento melhor para aguardar uma interrupção do teclado do que o feiowhile True:
bloco no final do meu código?)