BaseHTTPServer get_request not called till first request
yousay
qq263020776 at gmail.com
Sat Jan 16 21:35:21 EST 2010
On Jan 13, 1:38 am, Adam Tauno Williams <awill... at opengroupware.us>
wrote:
> Looking at <http://code.activestate.com/recipes/425210/> and
> <http://code.activestate.com/recipes/499376/> as examples I've attempted
> to create a BaseHTTPServer class that times-out accept() ever X seconds
> to check some other work. This seems to work well, but only once the
> HTTPServer object has received its first request. Up until the first
> request get_request() is not invoked and not timeout occurs.
>
> class HTTPServer(BaseHTTPServer.HTTPServer):
>
> def server_bind(self):
> BaseHTTPServer.HTTPServer.server_bind(self)
> self.socket.settimeout(1)
> self._shutdown = False
>
> def get_request(self):
> while not self._shutdown:
> try:
> print ' HTTP worker {0} waiting.'.format(self.pid)
> self.log.debug('Waiting for connection...')
> s, a = self.socket.accept()
> s.settimeout(None)
> return (s, a)
> except socket.timeout:
> /// do other work ///
> return None, None
>
> The "HTTP worker" message is not seen until the server has taken a
> request, then it seems to dutifully do the timeout.
>
> --
> OpenGroupware developer: awill... at whitemice.org
> <http://whitemiceconsulting.blogspot.com/>
> OpenGroupare & Cyrus IMAPd documenation @
> <http://docs.opengroupware.org/Members/whitemice/wmogag/file_view>
your class Name is the same to the superClass,may be have influence
More information about the Python-list
mailing list