def judge_proc(need_monitor): from dmoj import judgeenv logfile = judgeenv.log_file try: logfile = logfile % env['id'] except TypeError: pass logging.basicConfig( filename=logfile, level=logging.INFO, format='%(levelname)s %(asctime)s %(process)d %(module)s %(message)s') setproctitle('DMOJ Judge: %s on %s' % (env['id'], make_host_port(judgeenv))) judge = ClassicJudge(judgeenv.server_host, judgeenv.server_port, secure=judgeenv.secure, no_cert_check=judgeenv.no_cert_check, cert_store=judgeenv.cert_store) if need_monitor: monitor = Monitor() monitor.callback = judge.update_problems else: monitor = DummyMonitor() if hasattr(signal, 'SIGUSR2'): def update_problem_signal(signum, frame): judge.update_problems() signal.signal(signal.SIGUSR2, update_problem_signal) if need_monitor and judgeenv.api_listen: judge_instance = judge class Handler(JudgeControlRequestHandler): judge = judge_instance api_server = HTTPServer(judgeenv.api_listen, Handler) thread = threading.Thread(target=api_server.serve_forever) thread.daemon = True thread.start() else: api_server = None print() with monitor, judge: try: judge.listen() except Exception: traceback.print_exc() finally: judge.murder() if api_server: api_server.shutdown()
def judge_proc(need_monitor): from dmoj import judgeenv logfile = judgeenv.log_file try: logfile = logfile % env['id'] except TypeError: pass logging.basicConfig(filename=logfile, level=logging.INFO, format='%(levelname)s %(asctime)s %(process)d %(module)s %(message)s') proctitle = 'DMOJ Judge: %s on %s' % (env['id'], make_host_port(judgeenv)) if six.PY2: setproctitle(utf8bytes(proctitle)) else: setproctitle(proctitle) judge = ClassicJudge(judgeenv.server_host, judgeenv.server_port, secure=judgeenv.secure, no_cert_check=judgeenv.no_cert_check, cert_store=judgeenv.cert_store) if need_monitor: monitor = Monitor() monitor.callback = judge.update_problems else: monitor = DummyMonitor() if hasattr(signal, 'SIGUSR2'): def update_problem_signal(signum, frame): judge.update_problems() signal.signal(signal.SIGUSR2, update_problem_signal) if need_monitor and judgeenv.api_listen: judge_instance = judge class Handler(JudgeControlRequestHandler): judge = judge_instance api_server = HTTPServer(judgeenv.api_listen, Handler) thread = threading.Thread(target=api_server.serve_forever) thread.daemon = True thread.start() else: api_server = None print() with monitor, judge: try: judge.listen() except Exception: traceback.print_exc() finally: judge.murder() if api_server: api_server.shutdown()
def judge_proc(need_monitor): from dmoj import judgeenv logfile = judgeenv.log_file try: logfile = logfile % env['id'] except TypeError: pass logging.basicConfig( filename=logfile, level=logging.INFO, format='%(levelname)s %(asctime)s %(module)s %(message)s') judge = ClassicJudge(judgeenv.server_host, judgeenv.server_port) if need_monitor: monitor = Monitor() monitor.callback = judge.update_problems else: monitor = DummyMonitor() if hasattr(signal, 'SIGUSR2'): def update_problem_signal(signum, frame): judge.update_problems() signal.signal(signal.SIGUSR2, update_problem_signal) if need_monitor and judgeenv.api_listen: from BaseHTTPServer import HTTPServer judge_instance = judge class Handler(JudgeControlRequestHandler): judge = judge_instance api_server = HTTPServer(judgeenv.api_listen, Handler) thread = threading.Thread(target=api_server.serve_forever) thread.daemon = True thread.start() else: api_server = None print with monitor, judge: try: judge.listen() except KeyboardInterrupt: pass except: traceback.print_exc() finally: judge.murder() if api_server: api_server.shutdown()
def judge_proc(need_monitor): from dmoj import judgeenv logfile = judgeenv.log_file try: logfile = logfile % env['id'] except TypeError: pass logging.basicConfig( filename=logfile, level=logging.INFO, format='%(levelname)s %(asctime)s %(module)s %(message)s') judge = ClassicJudge(judgeenv.server_host, judgeenv.server_port) if need_monitor: monitor = Monitor() monitor.callback = judge.update_problems else: monitor = DummyMonitor() if hasattr(signal, 'SIGUSR2'): def update_problem_signal(signum, frame): judge.update_problems() signal.signal(signal.SIGUSR2, update_problem_signal) print with monitor, judge: try: judge.listen() except KeyboardInterrupt: pass except: traceback.print_exc() finally: judge.murder()
def main(): # pragma: no cover unicode_stdout_stderr() if not sanity_check(): return 1 from dmoj import judgeenv, contrib, executors judgeenv.load_env() executors.load_executors() contrib.load_contrib_modules() print('Running live judge...') for warning in judgeenv.startup_warnings: print_ansi('#ansi[Warning: %s](yellow)' % warning) del judgeenv.startup_warnings logfile = judgeenv.log_file try: logfile = logfile % env['id'] except TypeError: pass logging.basicConfig( filename=logfile, level=logging.INFO, format='%(levelname)s %(asctime)s %(process)d %(module)s %(message)s') setproctitle('DMOJ Judge %s on %s' % (env['id'], make_host_port(judgeenv))) judge = ClassicJudge( judgeenv.server_host, judgeenv.server_port, secure=judgeenv.secure, no_cert_check=judgeenv.no_cert_check, cert_store=judgeenv.cert_store, ) monitor = Monitor() monitor.callback = judge.update_problems if hasattr(signal, 'SIGUSR2'): def update_problem_signal(signum, frame): judge.update_problems() signal.signal(signal.SIGUSR2, update_problem_signal) if judgeenv.api_listen: judge_instance = judge class Handler(JudgeControlRequestHandler): judge = judge_instance api_server = HTTPServer(judgeenv.api_listen, Handler) thread = threading.Thread(target=api_server.serve_forever) thread.daemon = True thread.start() else: api_server = None print() with monitor: try: judge.listen() except KeyboardInterrupt: pass except Exception: traceback.print_exc() finally: judge.murder() if api_server: api_server.shutdown()