diff --git a/transfer_service/preprocessor.py b/transfer_service/preprocessor.py new file mode 100644 index 0000000000000000000000000000000000000000..9504ed662f8ae6bdeedf296f3ef9701d9211e108 --- /dev/null +++ b/transfer_service/preprocessor.py @@ -0,0 +1,33 @@ +import threading +import time + +from config import Config +from job_queue import JobQueue +from store_preprocessor import StorePreprocessor + + +class Preprocessor(threading.Thread): + + def __init__(self): + threading.Thread.__init__(self) + config = Config("vos_ts.conf") + self.params = config.loadSection("scheduling") + self.maxPendingJobs = self.params.getint("max_pending_jobs") + self.maxReadyJobs = self.params.getint("max_ready_jobs") + self.pendingQueue = JobQueue("pending") + self.readyQueue = JobQueue("ready") + self.storePreprocessor = StorePreprocessor() + + def run(self): + while True: + if(self.readyQueue.len() <= self.maxReadyJobs and self.pendingQueue.len() > 0): + jobObj = self.pendingQueue.getJob() + self.storePreprocessor.prepare(jobObj["jobInfo"]["userName"]) + self.storePreprocessor.start() + self.pendingQueue.moveJobTo("ready") + print("Job MOVED:") + time.sleep(1) + +# Test +#p = Preprocessor() +#p.start()