update pay ui
This commit is contained in:
13
app.py
13
app.py
@@ -1,7 +1,18 @@
|
|||||||
|
# ============ Gevent Monkey Patching(必须放在所有 import 之前!)============
|
||||||
|
# 用于支持 Gunicorn + gevent 异步模式,使 requests 等阻塞调用变为非阻塞
|
||||||
|
import os
|
||||||
|
if os.environ.get('GEVENT_SUPPORT', 'true').lower() == 'true':
|
||||||
|
try:
|
||||||
|
from gevent import monkey
|
||||||
|
monkey.patch_all()
|
||||||
|
print("✅ Gevent monkey patching 已启用")
|
||||||
|
except ImportError:
|
||||||
|
print("⚠️ Gevent 未安装,跳过 monkey patching")
|
||||||
|
# ============ Gevent Monkey Patching 结束 ============
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import csv
|
import csv
|
||||||
import io
|
import io
|
||||||
import os
|
|
||||||
import time
|
import time
|
||||||
import urllib
|
import urllib
|
||||||
import uuid
|
import uuid
|
||||||
|
|||||||
@@ -3,12 +3,14 @@
|
|||||||
Gunicorn 配置文件 - app.py 生产环境配置(支持 Flask-SocketIO)
|
Gunicorn 配置文件 - app.py 生产环境配置(支持 Flask-SocketIO)
|
||||||
|
|
||||||
使用方式:
|
使用方式:
|
||||||
# 推荐方式: 使用 geventwebsocket 支持 WebSocket + 高并发
|
# 方式1: 推荐 - 使用 geventwebsocket 支持 WebSocket + 高并发
|
||||||
gunicorn -c gunicorn_app_config.py app:app
|
gunicorn -c gunicorn_app_config.py app:app
|
||||||
|
|
||||||
# 或者使用 eventlet(如果 gevent 有问题)
|
# 方式2: 如果方式1有问题,使用纯 gevent(无 WebSocket)
|
||||||
pip install eventlet
|
gunicorn -c gunicorn_app_config.py -k gevent app:app
|
||||||
gunicorn -c gunicorn_app_config.py -k eventlet app:app
|
|
||||||
|
# 方式3: 最简单的多进程模式(不支持 WebSocket,但最稳定)
|
||||||
|
gunicorn -w 4 -b 0.0.0.0:5001 --timeout 120 app:app
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -18,18 +20,20 @@ import os
|
|||||||
# 绑定地址和端口
|
# 绑定地址和端口
|
||||||
bind = '0.0.0.0:5001'
|
bind = '0.0.0.0:5001'
|
||||||
|
|
||||||
# Worker 进程数(Flask-SocketIO 使用异步 worker,不需要太多)
|
# Worker 进程数
|
||||||
workers = 1 # geventwebsocket 要求单 worker
|
# 注意:geventwebsocket 要求单 worker,如果用多 worker 需要用 sync 或 gevent
|
||||||
|
workers = 1
|
||||||
|
|
||||||
# Worker 类型 - 使用 geventwebsocket 支持 WebSocket
|
# Worker 类型 - 使用 geventwebsocket 支持 WebSocket
|
||||||
|
# 如果遇到问题,可以命令行添加 -k gevent 覆盖此设置
|
||||||
worker_class = 'geventwebsocket.gunicorn.workers.GeventWebSocketWorker'
|
worker_class = 'geventwebsocket.gunicorn.workers.GeventWebSocketWorker'
|
||||||
|
|
||||||
# Worker 连接数(gevent 异步模式下可以处理大量并发连接)
|
# Worker 连接数(gevent 异步模式下可以处理大量并发连接)
|
||||||
worker_connections = 1000
|
worker_connections = 1000
|
||||||
|
|
||||||
# 每个 worker 处理的最大请求数,超过后重启(防止内存泄漏)
|
# 每个 worker 处理的最大请求数,超过后重启(防止内存泄漏)
|
||||||
max_requests = 10000
|
max_requests = 5000
|
||||||
max_requests_jitter = 1000
|
max_requests_jitter = 500
|
||||||
|
|
||||||
# ==================== 超时配置 ====================
|
# ==================== 超时配置 ====================
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user