总结优化
This commit is contained in:
@@ -53,6 +53,17 @@ def send_message_in_thread(func, *args, **kwargs):
|
||||
message_thread_pool.submit(run)
|
||||
|
||||
|
||||
def run_member_context_refresh_in_thread(func, *args, **kwargs):
|
||||
"""在线程池中异步刷新成员交互摘要,避免阻塞请求线程"""
|
||||
def run():
|
||||
try:
|
||||
func(*args, **kwargs)
|
||||
except Exception as e:
|
||||
logger.error(f"成员交互摘要后台刷新失败: {e}")
|
||||
|
||||
message_thread_pool.submit(run)
|
||||
|
||||
|
||||
# 联系人管理页面
|
||||
@contacts_bp.route('/')
|
||||
@login_required
|
||||
@@ -272,17 +283,17 @@ def api_refresh_group_member_context():
|
||||
if roomid and wxid:
|
||||
if not server.member_context_service.is_group_enabled(roomid):
|
||||
return jsonify({"success": False, "error": "该群未启用成员交互摘要功能"}), 403
|
||||
context = server.member_context_service.refresh_member_context(roomid, wxid)
|
||||
return jsonify({"success": True, "data": {"context": context}})
|
||||
run_member_context_refresh_in_thread(server.member_context_service.refresh_member_context, roomid, wxid)
|
||||
return jsonify({"success": True, "message": "成员交互摘要刷新任务已提交"})
|
||||
|
||||
if roomid:
|
||||
if not server.member_context_service.is_group_enabled(roomid):
|
||||
return jsonify({"success": False, "error": "该群未启用成员交互摘要功能"}), 403
|
||||
result = server.member_context_service.refresh_group_contexts(roomid)
|
||||
return jsonify({"success": True, "data": result})
|
||||
run_member_context_refresh_in_thread(server.member_context_service.refresh_group_contexts, roomid)
|
||||
return jsonify({"success": True, "message": "本群成员交互摘要刷新任务已提交"})
|
||||
|
||||
result = server.member_context_service.refresh_all_chatrooms()
|
||||
return jsonify({"success": True, "data": result})
|
||||
run_member_context_refresh_in_thread(server.member_context_service.refresh_all_chatrooms)
|
||||
return jsonify({"success": True, "message": "全量成员交互摘要刷新任务已提交"})
|
||||
except Exception as e:
|
||||
logger.error(f"刷新群成员交互摘要失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
Reference in New Issue
Block a user