py优雅退出

This commit is contained in:
gaoshuaixing
2024-03-04 11:52:33 +08:00
parent a9ed705e8a
commit 93c460b31e
2 changed files with 28 additions and 2 deletions

View File

@@ -1,5 +1,9 @@
from flask import Flask, request, jsonify
from flask_cors import CORS
import argparse
import signal
import threading
import sys
# flask-demo
@@ -10,6 +14,9 @@ args = parser.parse_args()
app = Flask(__name__)
# 配置 CORS允许所有来源
CORS(app)
# 定义路由和处理器
@app.route('/', methods=['GET'])
def index():
@@ -22,6 +29,25 @@ def hello():
name = request.args.get('name', 'World')
return jsonify({'message': f'Hello, {name}!'}), 200
# 通过信号来退出服务,否则会出现终端显示退出后,实际进程仍在运行
# 定义信号处理函数
def signal_handler(sig, frame):
print("Received signal to terminate the server.")
# 关闭 Flask 应用
# func = request.environ.get('werkzeug.server.shutdown')
# if func is None:
# func = lambda: None
# func()
# 退出主线程
# threading.main_thread().exit()
sys.exit(0)
# 注册信号处理函数
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGINT, signal_handler)
if __name__ == '__main__':
# 以api方式启动服务会出现警告请忽略
app.run(port=args.port)