def main_loop(proxy=None, conf=None): """infinite daemon loop""" global shutting_down shutting_down = gevent.event.Event() gevent.monkey.patch_all() # define custom signal handlers signal.signal(signal.SIGINT, daemon_shutdown) signal.signal(signal.SIGTERM, daemon_shutdown) login = RepeatTimer(conf['RENEW_SESSION_INTERVAL'], proxy.hub._login, stop_on_exception=False) login.daemon = True login.start() server = gevent.wsgi.WSGIServer( ('::', 8000), log_failed_requests(WSGIApplication(proxy)), handler_class=WSGIHandler, spawn=gevent.pool.Pool()) server.stop_timeout = None server.start() try: shutting_down.wait() finally: server.stop() login.stop()
def main_loop(proxy=None, conf=None): """infinite daemon loop""" global shutting_down shutting_down = gevent.event.Event() gevent.monkey.patch_all() # define custom signal handlers signal.signal(signal.SIGINT, daemon_shutdown) signal.signal(signal.SIGTERM, daemon_shutdown) login = RepeatTimer(conf['RENEW_SESSION_INTERVAL'], proxy.hub._login, stop_on_exception=False) login.daemon = True login.start() server = gevent.wsgi.WSGIServer(('::', 8000), log_failed_requests(WSGIApplication(proxy)), handler_class=WSGIHandler, spawn=gevent.pool.Pool()) server.stop_timeout = None server.start() try: shutting_down.wait() finally: server.stop() login.stop()
def main_loop(proxy=None, conf=None, foreground=False): """infinite daemon loop""" global shutting_down shutting_down = gevent.event.Event() gevent.monkey.patch_all() # define custom signal handlers signal.signal(signal.SIGINT, daemon_shutdown) signal.signal(signal.SIGTERM, daemon_shutdown) # set up logging log_level_string = conf["LOG_LEVEL"] log_level = getattr(logging, log_level_string.upper(), logging.DEBUG) logging.getLogger().setLevel(log_level) if foreground: add_stderr_logger(logging.getLogger(), log_level=log_level) else: log_file = conf["LOG_FILE"] add_rotating_file_logger(logging.getLogger(), log_file, log_level=log_level, format=conf["VERBOSE_LOG_FORMAT"]) login = RepeatTimer(conf['RENEW_SESSION_INTERVAL'], proxy.hub._login, stop_on_exception=False) login.daemon = True login.start() server = gevent.wsgi.WSGIServer(('', 8000), WSGIApplication(proxy), handler_class=WSGIHandler, spawn=gevent.pool.Pool()) server.stop_timeout = None server.start() try: shutting_down.wait() finally: server.stop() login.stop()