def run(): parser = argparse.ArgumentParser() parser.add_argument('git_url', help='git+ssh URL for Puppet environment repository') parser.add_argument('base_dir', help='local filesystem path of Puppet environments') parser.add_argument('--interval', default=300, help='how often to refresh all environments') args = parser.parse_args() cherrypy.config.update({ 'git_url': args.git_url, 'base_dir': args.base_dir, }) app = App() # Schedule task to refresh all branches every 5 minutes task = plugins.BackgroundTask(args.interval, app.refresh_everything) task.bus = cherrypy.engine task.start() cherrypy.quickstart(app, '/api')
def __init__(self, config, backends, logger): self.config = config self.backends = backends self._logger = logger # these dicts hold our data self.tokens = {} self.user_token = {} # start plugin to handle emails self.emailer = EmailTokenPlugin(cherrypy.engine, config, logger).subscribe() # start periodic garbage collection self.gc = plugins.BackgroundTask(GC_INTERVAL, self._collect_garbage, bus=cherrypy.engine) self.gc.start()
def run(self): self.service_state.workers = self.handler.workers daemon = plugins.Daemonizer( cherrypy.engine, stdout=os.path.join(self.workdir, 'fioservice.access.log'), stderr=os.path.join(self.workdir, 'fioservice.log'), ) daemon.subscribe() cherrypy.log.error_log.propagate = False cherrypy.log.access_log.propagate = False cherrypy.server.socket_host = configuration.settings.ip_address cherrypy.tree.mount(self.root, config=self.conf) cherrypy.config.update({ 'engine.autoreload.on': False, 'server.socket_host': configuration.settings.ip_address, 'server.socket_port': configuration.settings.port, 'error_page.default': jsonify_error, 'tools.encode.encoding': 'utf-8', 'cors.expose.on': True, }) plugins.PIDFile(cherrypy.engine, get_pid_file(self.workdir)).subscribe() plugins.SignalHandler(cherrypy.engine).subscribe() # handle SIGTERM, SIGHUP etc self.worker = plugins.BackgroundTask( interval=1, function=run_job, args=[self.dbpath, self.handler, self.service_state, self.debug_mode] ) cherrypy.engine.subscribe('stop', self.cleanup) try: cherrypy.engine.start() except Exception: sys.exit(1) else: self.worker.run() cherrypy.engine.block()
def run(self): self.service_state.workers = self.handler.workers daemon = plugins.Daemonizer( cherrypy.engine, stdout=os.path.join(self.workdir, 'fioservice.access.log'), stderr=os.path.join(self.workdir, 'fioservice.log'), ) daemon.subscribe() cherrypy.log.error_log.propagate = False cherrypy.log.access_log.propagate = False cherrypy.server.socket_host = '0.0.0.0' cherrypy.tree.mount(self.root, config=self.conf) cherrypy.config.update({ 'engine.autoreload.on': False, 'server.socket_host': '0.0.0.0', 'server.socket_port': self.port }) plugins.PIDFile(cherrypy.engine, get_pid_file(self.workdir)).subscribe() plugins.SignalHandler( cherrypy.engine).subscribe() # handle SIGTERM, SIGHUP etc self.worker = plugins.BackgroundTask( interval=1, function=run_job, args=[self.handler, self.service_state]) cherrypy.engine.subscribe('stop', self.cleanup) # prevent CP loggers from propagating entries to the root logger # (i.e stop duplicate log entries) try: cherrypy.engine.start() except Exception: sys.exit(1) else: self.worker.run() cherrypy.engine.block()
def start(self): self.bus.log('Starting up twitter cyclic loader') task = plugins.BackgroundTask(self.freq, self.fetch_mentions) self.tasks.append(task) task.bus = self.bus task.start()
return cherrypy.session['session_id'] if __name__ == '__main__': rfidapp = rfid() rfidapp.generator = rfidGeneratorWebService() file_path = os.getcwd() + '/web' # This is the configuration and starting of the service cherrypy.config.update({ 'server.socket_host': "0.0.0.0", 'server.socket_port': 9090 }) plugins.BackgroundTask(0.1, doRFID).start() cherrypy.quickstart( rfid(), '/', { '/': { 'tools.staticdir.root': file_path, }, '/logaccess.csv': { 'tools.staticfile.on': True, 'tools.staticfile.filename': file_path + '/logaccess.csv' }, '/users.txt': { 'tools.staticfile.on': True, 'tools.staticfile.filename': file_path + '/users.txt' }, '/js': { 'tools.staticdir.on': True,