У меня есть следующий фрагмент в представлении Django для отображения статистики memcache:
import datetime, re, memcache
host = memcache._Host(settings.CACHES['default']['LOCATION'])
host.connect()
host.send_cmd("stats")
output = ''
while 1:
line = host.readline()
if line[0] == "END":
break
output += line + "\n"
host.close_socket()
return output
Когда я пытаюсь это сделать, я получаю тайм-аут в операторе readline ().
Попытка этого кода через manage.py shell
работает нормально, однако.
Это работает в представлении, если я использую этот фрагмент вместо:
p2 = subprocess.Popen(["echo \"stats\" | nc " + settings.CACHES['default']['LOCATION'].replace(':', ' ')], stdout = subprocess.PIPE, shell=True)
return p2.stdout.read()
Я могу просто проигнорировать время ожидания для предыдущего кода и использовать метод подпроцесса, но я действительно заинтересован взная, что может быть не так.Кто-нибудь когда-нибудь сталкивался с этой проблемой?