httplib.HTTPSConnection вызывает ошибки SSL в параллельных средах - PullRequest
0 голосов
/ 18 февраля 2012

Я сделал небольшой скрипт на python для стресс-тестирования сайта, над которым я работал, прежде чем он станет общедоступным.Он работает, порождая новый поток каждые 5 минут, который выполняет приведенный ниже код в цикле while (true).

conn = httplib.HTTPSConnection("site", 000, "pem", "pem", timeout = 30)
conn.request("GET", "/reports.php?" + url, headers = headers)
response = conn.getresponse()
read = (response.read())

Если у меня только 1 поток, запрос / ответ на код выполняется каждый раз.Когда я создаю новые темы, я получаю ошибку ниже.В конце концов, когда есть около 10 потоков, это дает сбой около 90% времени.

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
  File "stresstest.py", line 32, in threadproc
    stressTest(conn)
  File "stresstest.py", line 76, in stressTest
    response = conn.getresponse()
  File "/usr/lib/python2.7/httplib.py", line 1027, in getresponse
    response.begin()
  File "/usr/lib/python2.7/httplib.py", line 407, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python2.7/httplib.py", line 365, in _read_status
    line = self.fp.readline()
  File "/usr/lib/python2.7/socket.py", line 430, in readline
    data = recv(1)
  File "/usr/lib/python2.7/ssl.py", line 232, in recv
    return self.read(buflen)
  File "/usr/lib/python2.7/ssl.py", line 151, in read
    return self._sslobj.read(len)
SSLError: The read operation timed out

Мне было интересно, не является ли ssl-код, используемый httplib, потокобезопасным или есть какая-то другая причина ошибок?

1 Ответ

2 голосов
/ 18 февраля 2012

Это потокобезопасно. Возможно, вы захотите начать изучать производительность вашего серверного кода ...

...