[Oval-commits] r153 - trunk/oval-server
Pavel Vinogradov
blaze-guest at alioth.debian.org
Mon Aug 20 03:46:56 UTC 2007
Author: blaze-guest
Date: 2007-08-20 03:46:56 +0000 (Mon, 20 Aug 2007)
New Revision: 153
Modified:
trunk/oval-server/oval-server.py
Log:
Implement multithreading
Modified: trunk/oval-server/oval-server.py
===================================================================
--- trunk/oval-server/oval-server.py 2007-08-20 03:37:45 UTC (rev 152)
+++ trunk/oval-server/oval-server.py 2007-08-20 03:46:56 UTC (rev 153)
@@ -1,11 +1,14 @@
from ConfigParser import SafeConfigParser
+from threading import Thread
import os, logging
import time
-class httpThread:
+class httpThread(Thread):
__status = None
def __init__ (self, config, logger):
+ Thread.__init__(self)
+
self.type = config['type']
self.ip = config['ip']
self.port = int(config['port'])
@@ -17,21 +20,23 @@
self.logger = logger
self.logger.info('httpThread: Run local server on %s:%d in %s' % (self.ip, self.port, self.workdir))
- def startThread (self):
+ def run (self):
self.__status = 1
- self.run ()
+ self.server.serve_forever()
- def stopThread (self):
+ def stop (self):
self.__status = None
- def run (self):
- self.server.serve_forever()
+ def __del__(self):
+ self.logger.info('httpThread: Stop local server')
-class syncThread:
+class syncThread(Thread):
__status = None
def __init__(self, config, logger):
+ Thread.__init__(self)
+
self.type = config['type']
self.source = config['source']
self.storage = config['dsa_storage']
@@ -44,20 +49,17 @@
self.syncer = dirSync(self.source, self.storage, self.logger)
self.logger.info('syncThread: Run local updater %s with: %s, %s' % (self.name, self.source, self.update_interval))
- def startThread (self):
+ def run (self):
self.__status = 1
- self.run ()
- def stopThread (self):
- self.__status = None
-
- def run (self):
- while 1:
+ while self.__status:
self.logger.debug('syncThread: Run local sync')
self.syncer.sync()
self.logger.debug('syncThread: sleep')
time.sleep(60*1)
-
+ def stop(self):
+ self.__status = None
+
class mainThread:
config = SafeConfigParser()
@@ -106,17 +108,21 @@
def run(self):
self.logger.info('mainThread.RUN')
-# #Create sync thread
-# conf = self.readConfigSection('source')
-# conf['dsa_storage'] = self.dsa_storage
-# syncer = syncThread(conf, self.logger)
-# syncer.startThread()
-#
+ #Create sync thread
+ conf = self.readConfigSection('source')
+ conf['dsa_storage'] = self.dsa_storage
+ syncer = syncThread(conf, self.logger)
+ syncer.start()
+
#Create http thread
conf = self.readConfigSection('server')
server = httpThread(conf, self.logger)
- server.startThread()
+ server.start()
+ #Wait all Threads
+ syncer.join()
+ server.join()
+
self.logger.info('Shutting down')
logging.shutdown()
More information about the Oval-commits
mailing list