zbparse/flask_app/start_up.py

53 lines
2.2 KiB
Python
Raw Permalink Normal View History

# flask_app/start_up.py
from concurrent.futures import ProcessPoolExecutor
from multiprocessing import Pool
2024-10-12 18:01:59 +08:00
from flask import Flask, g
2024-11-25 09:15:56 +08:00
from flask_app.ConnectionLimiter import ConnectionLimiter
2024-12-11 17:42:51 +08:00
from flask_app.logger_setup import create_logger_main
from flask_app.routes.get_deviation import get_deviation_bp
from flask_app.routes.little_zbparse import little_zbparse_bp
2025-02-17 11:30:11 +08:00
from flask_app.routes.test_readpdf import test_readpdf_bp
from flask_app.routes.upload import upload_bp
from flask_app.routes.test_zbparse import test_zbparse_bp
from flask_app.general.llm.清除file_id import delete_file_by_ids,read_file_ids
2025-01-10 14:30:35 +08:00
from flask_app.routes.judge_zbfile import judge_zbfile_bp
from flask_app.routes.test_preprocess import test_process_bp
def create_app():
2024-12-11 17:42:51 +08:00
# 创建全局日志记录器
2025-02-14 15:46:07 +08:00
app = Flask(__name__)
2025-02-19 16:35:51 +08:00
app.process_pool = Pool(processes=10, maxtasksperchild=3)
2025-02-15 13:24:45 +08:00
app.global_logger = create_logger_main('model_log') # 全局日志记录器
# 注册蓝图
app.register_blueprint(get_deviation_bp)
app.register_blueprint(little_zbparse_bp)
app.register_blueprint(upload_bp)
app.register_blueprint(test_zbparse_bp)
2025-01-10 14:30:35 +08:00
app.register_blueprint(judge_zbfile_bp)
app.register_blueprint(test_process_bp)
2025-02-17 11:30:11 +08:00
app.register_blueprint(test_readpdf_bp)
@app.teardown_request
2025-02-16 18:14:11 +08:00
def teardown_request(exception):
2025-02-17 12:47:53 +08:00
output_folder = getattr(g, 'output_folder', None)
2025-02-16 18:14:11 +08:00
# 接口请求之后都会执行该代码,做一些清理工作
logger = getattr(g, 'logger', None)
2025-02-16 18:14:11 +08:00
if output_folder:
# 执行与output_folder相关的清理操作例如删除临时文件
logger.info(f"正在清理输出文件夹: {output_folder}")
file_ids = read_file_ids(output_folder)
failed_file_ids = delete_file_by_ids(file_ids)
if failed_file_ids:
logger.error(f"以下文件删除失败: {failed_file_ids}")
else:
logger.info("清理完毕!")
2025-02-17 12:47:53 +08:00
if logger:
for handler in logger.handlers[:]:
handler.close()
logger.removeHandler(handler)
return app
2024-08-30 11:56:11 +08:00
2025-02-11 11:11:20 +08:00
2024-12-05 11:26:45 +08:00
if __name__ == '__main__':
app = create_app()
2025-02-19 14:58:11 +08:00
app.run(debug=False, host='0.0.0.0', port=5000)