2012-03-04 29 views
0

我有一个Django视图下面的代码片段来呈现内存缓存统计:查看通过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() 

我可以忽略前面的代码超时和使用方法子,但我在知道这可能是真的有兴趣错误。有人遇到过这个问题吗?

回答

0

没关系,它应该阅读:

if line.strip() == "END": 

末未:

if line[0] == "END":