Jan Dittberner
daeb7b675e
- restructure RPC server code - stop timer threads when shutting down server git-svn-id: file:///home/www/usr01/svn/gnuviechadmin/gnuviech.info/gnuviechadmin/trunk@187 a67ec6bc-e5d5-0310-a910-815c51eb3124
30 lines
853 B
Python
Executable file
30 lines
853 B
Python
Executable file
#!/usr/bin/python
|
|
"""
|
|
XML-RPC server for gnuviech-admin tool
|
|
(c) 2006 Jan Dittberner
|
|
$Id$
|
|
"""
|
|
from DocXMLRPCServer import DocXMLRPCServer
|
|
from GnuviechAdmin import ServiceFacade, Settings
|
|
import logging, threading
|
|
|
|
logger = logging.getLogger()
|
|
hdlr = logging.FileHandler('xmlrpcserver.log')
|
|
f = logging.Formatter('%(asctime)s %(levelname)s %(module)s: %(message)s')
|
|
hdlr.setFormatter(f)
|
|
logger.addHandler(hdlr)
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
server = DocXMLRPCServer(Settings.RPCSERVERADDRESS)
|
|
server.register_introspection_functions()
|
|
server.register_instance(ServiceFacade())
|
|
|
|
try:
|
|
server.serve_forever()
|
|
except KeyboardInterrupt:
|
|
server.server_close()
|
|
|
|
for thread in [t for t in threading.enumerate() if t.isAlive() \
|
|
and isinstance(t, threading._Timer)]:
|
|
logger.debug("Stopping timer thread %s" % thread.getName())
|
|
thread.cancel()
|