[pypy-svn] r29498 - in pypy/dist/pypy/translator/js: demo/jsdemo proxy/testme
ericvrp at codespeak.net
ericvrp at codespeak.net
Thu Jun 29 18:10:59 CEST 2006
Author: ericvrp
Date: Thu Jun 29 18:10:57 2006
New Revision: 29498
Modified:
pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
pypy/dist/pypy/translator/js/proxy/testme/servermessage.py
Log:
close connection when idle for more than 5 seconds
Modified: pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
==============================================================================
--- pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py (original)
+++ pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py Thu Jun 29 18:10:57 2006
@@ -107,6 +107,7 @@
def serverMessage(self):
+ self._closeIdleConnections()
sessionid = session['_id']
if sessionid not in self._serverMessage:
self._serverMessage[sessionid] = ServerMessage('static/images/')
@@ -134,7 +135,6 @@
@turbogears.expose(html="jsdemo.templates.bnb")
def index(self):
- import time
return dict(now=time.ctime(), onload=self.jsname, code=self.jssource)
@turbogears.expose(format='json')
@@ -206,6 +206,16 @@
sm.socket.close()
del self._serverMessage[sessionid]
+ def _closeIdleConnections(self):
+ t = time.time() - 5.0 #5 seconds until considered idle
+ for sessionid, sm in self._serverMessage.items():
+ if sm.last_active < t:
+ log("Close connection with sessionid %s because it was idle for %.1f seconds" % (
+ sessionid, time.time() - sm.last_active))
+ if sm.socket is not None:
+ sm.socket.close()
+ del self._serverMessage[sessionid]
+
@turbogears.expose(format="json")
def initialize_session(self):
self._close()
Modified: pypy/dist/pypy/translator/js/proxy/testme/servermessage.py
==============================================================================
--- pypy/dist/pypy/translator/js/proxy/testme/servermessage.py (original)
+++ pypy/dist/pypy/translator/js/proxy/testme/servermessage.py Thu Jun 29 18:10:57 2006
@@ -8,6 +8,7 @@
from os.path import exists
from md5 import md5
from struct import unpack
+from time import time
debug = True
@@ -51,10 +52,12 @@
self.gfx_dir = self.base_gfx_dir #gets overwritten depending on playfield FnDesc
self.gfx_url = self.base_gfx_url
self.decompressobj = decompressobj().decompress
+ self.last_active = time()
def dispatch(self, *values):
#log('RECEIVED:%s(%d)' % (values[0], len(values[1:])))
+ self.last_active = time()
fn = self.MESSAGES.get(values[0])
if fn:
try:
More information about the Pypy-commit
mailing list