将下面的块添加到您自己的asyncore.poll副本中,就在for fd in e:块之后。。。在
#handle timeouts
rw = set(r) + set(w)
now = time.time()
for f in (i for i in rw if i in map):
map[f].lastdata = now
for j in (map[i] for i in map if i not in rw):
if j.timeout+j.lastdata now:
#timeout!
j.handle_close()
根据
asyncore
documentation,asyncore.loop()
有一个超时参数,默认为30秒。所以显然违约时间应该是30秒,你可以试着用它来满足你自己的需要。在好的,上面实际指的是}超时,而不是空闲超时。
根据this page,您可以使用asyncore来支持如下超时:
poll()
或{将下面的块添加到您自己的
asyncore.poll
副本中,就在for fd in e:
块之后。。。在您将需要初始化的.timeout和.lastdata成员 每一个实例,但这应该不是那么糟糕(对于一个 不会超时,我建议暂停1小时或1天)。在
相关问题 更多 >
编程相关推荐