def init(self): # config options self.config = {} self.loadConfig() self.running = False # initialize the event object used for sleeping self.event = threading.Event() if self.config['persistence'] and os.path.exists(self.config['file_name']): try: Logger.info('loading database from %s' % self.config['file_name']) self.load() except Exception as e: Logger.critical(str(e)) self.setup() # register our 'save' commands Command.register(self.saveCmd, 'db.save', 0, 'db.save') # treat events Event.register('core.reload', self.reloadEvent) Event.register('core.shutdown', self.shutdownEvent)
def init(): commands = { 'product.add': {'handler': Product.productAddCmd, 'args':2, 'help':'productAdd sku stock'}, 'product.info': {'handler': Product.productInfoCmd, 'args':1, 'help':'productInfo sku'}, 'reservation.add': {'handler': Product.reservationAddCmd, 'args':3, 'help':'reservationAdd client_id sku qty'}, 'reservation.del': {'handler': Product.reservationDelCmd, 'args':3, 'help':'reservationDel client_id sku qty'}, 'reservation.set': {'handler': Product.reservationSetCmd, 'args':3, 'help':'reservationSet client_id sku qty'}, 'stock.set': {'handler': Product.stockSetCmd, 'args':2, 'help':'stockSet sku stock'}, 'stock.dec': {'handler': Product.stockDecCmd, 'args':2, 'help':'stockDec sku qty'}, 'stock.get': {'handler': Product.stockGetCmd, 'args':1, 'help':'stockGet sku'}, 'product.total': {'handler': Product.totalCmd, 'args':0, 'help':'status'} } for c in commands: Command.register( commands[c]['handler'], c, commands[c]['args'], commands[c]['help'] ) Event.register('db.save', Product.saveDb) Event.register('db.load', Product.loadDb)
def init(): Config.load() # register our "reloadCfg" command Command.register(Config.reloadCmd, 'config.reload', 0, 'config.reload') # reload config when receiving SIGUSR1 signal.signal(signal.SIGUSR1, Config.sigusr1)
def __init__(self): self.config = {} # load configuration options self.loadConfig() self.running = True self.connections = {} # initialize the epoll object self.epoll = select.epoll() # workers manager self.manager = Manager(self) self.manager.start() Event.register('core.reload', self.reloadEvent) Command.register(self.shutdownCmd, 'core.shutdown', 0, 'core.shutdown')
def __init__(self, server): super(Manager, self).__init__() # list of workers self.workers = [] # mutex for the list of workers self.workersLock = threading.RLock() # condition variable self.event = threading.Event() # flag indicating that we're still running self.running = False # manager config self.config = {} self.loadConfig() # available idle threads self.idleWorkers = Queue.Queue() # read buffer to collect data from sockets # and split it later by \n and feed it to workers # when a \n is met # fd -> buffer self.readBuffer = {} # register commands Command.register(self.workersCmd, 'core.workers', 0) # register for the core.reload event Event.register('core.reload', self.reloadEvent) # server instance self.server = server