Python XMLRPC question

prasanna prasanna at ix.netcom.com
Thu Oct 15 12:45:02 EDT 2009


Thanks a bunch. Qill give it a shot.

--p

On Oct 14, 8:18 pm, "Gabriel Genellina" <gagsl-... at yahoo.com.ar>
wrote:
> En Wed, 14 Oct 2009 22:08:09 -0300,prasanna<prasa... at ix.netcom.com>  
> escribió:
>
> > Out of curiosity--one more thing I haven't yet figured out, is there a
> > xmlrpc command I can send that stops or restarts the server?
>
> If you're using Python 2.6, the easiest way is to register its shutdown()  
> method. Note that it *must* be called from a separate thread (just inherit  
>  from ForkingMixIn)
>
> On earlier versions, overwrite the serve_forever loop (so it reads `while  
> not self._quit: ...`) and add a shutdown() method that sets self._quit to  
> True. You'll need to call shutdown twice in that case.
>
> === begin xmlrpcshutdown.py ===
> import sys
>
> def server():
>      from SocketServer import ThreadingMixIn
>      from SimpleXMLRPCServer import SimpleXMLRPCServer
>
>      # ThreadingMixIn must be included when publishing
>      # the shutdown method
>      class MyXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
>          pass
>
>      print 'Running XML-RPC server on port 8000'
>      server = MyXMLRPCServer(("localhost", 8000),
>          logRequests=False, allow_none=True)
>          # allow_none=True because of shutdown
>      server.register_function(lambda x,y: x+y, 'add')
>      server.register_function(server.shutdown)
>      server.serve_forever()
>
> def client():
>      from xmlrpclib import ServerProxy
>
>      print 'Connecting to XML-RPC server on port 8000'
>      server = ServerProxy("http://localhost:8000")
>      print "2+3=", server.add(2, 3)
>      print "asking server to shut down"
>      server.shutdown()
>
> if sys.argv[1]=="server": server()
> elif sys.argv[1]=="client": client()
> === end xmlrpcshutdown.py ===
>
> C:\TEMP>start python xmlrpcshutdown.py server
>
> C:\TEMP>python xmlrpcshutdown.py client
> Connecting to XML-RPC server on port 8000
> 2+3= 5
> asking server to shut down
>
> C:\TEMP>
>
> --
> Gabriel Genellina




More information about the Python-list mailing list