def runserver(env): args = env['args'] setup_loggers(env) activity_logger = logging.getLogger("activity_logger") database_store = env['global']['database_store'] databases_storage = env['global']['databases_storage_path'] databases = DatabaseStore(database_store, databases_storage) backend = Backend(databases, args['workers']) frontend = Frontend(args['transport'], ':'.join([args['bind'], args['port']])) poller = zmq.Poller() poller.register(backend.socket, zmq.POLLIN) poller.register(frontend.socket, zmq.POLLIN) activity_logger.info('Elevator server started on %s' % frontend.host) while True: try: sockets = dict(poller.poll()) if frontend.socket in sockets: if sockets[frontend.socket] == zmq.POLLIN: msg = frontend.socket.recv_multipart(copy=False) backend.socket.send_multipart(msg, copy=False) if backend.socket in sockets: if sockets[backend.socket] == zmq.POLLIN: msg = backend.socket.recv_multipart(copy=False) frontend.socket.send_multipart(msg, copy=False) except KeyboardInterrupt: activity_logger.info('Gracefully shuthing down workers') del backend activity_logger.info('Stopping frontend') del frontend activity_logger.info('Done') return except Exception as e: log_uncaught_exceptions(e, paranoid=args['paranoid'])
def runserver(config): setup_loggers(config) activity_logger = logging.getLogger("activity_logger") databases = DatabaseStore(config) backend = Backend(databases, config) frontend = Frontend(config) poller = zmq.Poller() poller.register(backend.socket, zmq.POLLIN) poller.register(frontend.socket, zmq.POLLIN) activity_logger.info('Elevator server started on %s' % frontend.host) while True: try: sockets = dict(poller.poll()) if frontend.socket in sockets: if sockets[frontend.socket] == zmq.POLLIN: msg = frontend.socket.recv_multipart(copy=False) backend.socket.send_multipart(msg, copy=False) if backend.socket in sockets: if sockets[backend.socket] == zmq.POLLIN: msg = backend.socket.recv_multipart(copy=False) frontend.socket.send_multipart(msg, copy=False) except KeyboardInterrupt: activity_logger.info('Gracefully shuthing down workers') del backend activity_logger.info('Stopping frontend') del frontend activity_logger.info('Done') return except Exception as e: log_critical(e) del backend del frontend return