From ff0f3836e62c9ae637ba445052ad27cfecbf0506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=9A=E9=A3=8E=E6=8B=82=E6=9F=B3=E9=A2=9C?= <434857005@qq.com> Date: Mon, 26 Jun 2023 10:40:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7drpy,=E5=B0=BD=E9=87=8F?= =?UTF-8?q?=E4=BF=9D=E8=AF=81gevent=E7=9A=84=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 41 ++++++++++++++++++++++++++++------------- base/config.py | 3 ++- js/drpy.txt | 2 +- js/version.txt | 2 +- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/app.py b/app.py index 951576c..adbd334 100644 --- a/app.py +++ b/app.py @@ -44,33 +44,48 @@ def create_flask_app(): app = create_flask_app() migrate = Migrate(app, db) - +max_version = (3, 11) # 小于3.11的版本(3.6-3.10) +max_version_str = ".".join([str(i) for i in max_version]) now_python_ver = ".".join([str(i) for i in sys.version_info[:3]]) -if sys.version_info < (3, 9): - from gevent.pywsgi import WSGIServer +no_error = True +if sys.version_info < max_version: + try: + from gevent.pywsgi import WSGIServer - # from gevent import monkey - # monkey.patch_all() # 多线程,只能放在最开头,import其它包之前 + # from gevent import monkey + # monkey.patch_all() # 多线程,只能放在最开头,import其它包之前 - from gevent import monkey - monkey.patch_socket() # 开启socket异步 - print(f'当前python版本{now_python_ver}为3.9.0及以下,支持gevent') + from gevent import monkey + + monkey.patch_socket() # 开启socket异步 + print(f'当前python版本{now_python_ver}为{max_version_str}及以下,支持gevent') + + except Exception as e: + print(f'gevent使用过程中发生了错误:{e}') + no_error = False else: - print(f'当前python版本{now_python_ver}为3.9.0及以上,不支持gevent') + print(f'当前python版本{now_python_ver}为{max_version_str}及以上,不支持gevent') if __name__ == "__main__": http_port = int(app.config.get('HTTP_PORT', 5705)) http_host = app.config.get('HTTP_HOST', '0.0.0.0') - threaded = app.config.get('Thread') + threaded = app.config.get('THREAD') + GEVENT = app.config.get('GEVENT') + print(GEVENT) if threaded is None: threaded = True + if GEVENT is None: + debug = False # https://www.zhihu.com/question/64096559 - print('threaded:',threaded) + print(f'threaded:{threaded},GEVENT:{GEVENT}') # if sys.version_info < (3, 9) and not sys.platform.startswith('win'): - if sys.version_info < (3, 9): + use_gevent = sys.version_info < max_version # 是否使用协程 + is_debug = (not GEVENT) and sys.platform.startswith('win') # windows开调试模式 + print(f'开启调试模式:{is_debug}') + if use_gevent and no_error and not is_debug: # server = WSGIServer(('0.0.0.0', 5705), app, handler_class=WebSocketHandler,log=app.logger) # server = WSGIServer(('0.0.0.0', 5705), app, handler_class=WebSocketHandler,log=None) server = WSGIServer((http_host, http_port), app, log=logger) server.serve_forever() else: - app.run(debug=False, host=http_host, port=http_port, threaded=threaded) \ No newline at end of file + app.run(debug=False, host=http_host, port=http_port, threaded=threaded) diff --git a/base/config.py b/base/config.py index edd1eea..c3bcb4c 100644 --- a/base/config.py +++ b/base/config.py @@ -56,5 +56,6 @@ JS_PROXY = 'http://localhost:5705/admin/view/=>https://ghproxy.net/https://raw.g ALI_TOKEN = '' # 适用于初始配置的阿里云token ENV = '{"bili_cookie":""}' # 自定义环境变量 UPDATE_PROXY = 'https://ghproxy.net/' # 检测升级代理 -Thread = True # 开启windows多线程调用 +THREAD = True # 开启windows多线程调用 +GEVENT = False # windows开启此参数就不走gevent,方便调试 SPECIAL = '腾云驾雾:腾讯&奇珍异兽:爱奇艺&百忙无果:芒果&优酷&哔哩影视&Alist' # 特殊优选 diff --git a/js/drpy.txt b/js/drpy.txt index e0759a8..f6ef7f5 100644 --- a/js/drpy.txt +++ b/js/drpy.txt @@ -1 +1 @@ -{"showTime":89200000,"txt":"drpy 3.9.43beta18 -道长"} \ No newline at end of file +{"showTime":89200000,"txt":"drpy 3.9.44beta1 -道长"} \ No newline at end of file diff --git a/js/version.txt b/js/version.txt index c416c99..47a3caf 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.43beta18 +3.9.44beta1