Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 08:38:59

0001 from pandacommon.pandalogger.PandaLogger import PandaLogger
0002 
0003 from pandajedi.jediconfig import jedi_config
0004 from pandajedi.jedicore.FactoryBase import FactoryBase
0005 
0006 logger = PandaLogger().getLogger(__name__.split(".")[-1])
0007 
0008 
0009 # factory class for throttling
0010 class JobThrottler(FactoryBase):
0011     # constructor
0012     def __init__(self, vo, sourceLabel):
0013         FactoryBase.__init__(self, vo, sourceLabel, logger, jedi_config.jobthrottle.modConfig)
0014 
0015     # main
0016     def toBeThrottled(self, vo, sourceLabel, cloudName, workQueue, resourceType):
0017         impl = self.getImpl(vo, sourceLabel)
0018         retVal = impl.toBeThrottled(vo, sourceLabel, cloudName, workQueue, resourceType)
0019         # retrieve min priority and max number of jobs from concrete class
0020         self.minPriority = impl.minPriority
0021         self.maxNumJobs = impl.maxNumJobs
0022         self.lackOfJobs = impl.underNqLimit
0023         return retVal
0024 
0025     # check throttle level
0026     def mergeThrottled(self, vo, sourceLabel, thrLevel):
0027         impl = self.getImpl(vo, sourceLabel)
0028         return impl.mergeThrottled(thrLevel)