总结优化

This commit is contained in:
liuwei
2026-04-02 12:01:58 +08:00
parent ce1708677f
commit 7f21ef4f69
3 changed files with 157 additions and 16 deletions

View File

@@ -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

View File

@@ -462,8 +462,8 @@
axios.post('/contacts/api/group_member_context/refresh', { roomid: this.currentGroup.wxid })
.then(response => {
if (response.data.success) {
this.$message.success('本群成员交互摘要刷新');
this.loadGroupMembers(this.currentGroup.wxid);
this.$message.success(response.data.message || '本群成员交互摘要刷新任务已提交');
setTimeout(() => this.loadGroupMembers(this.currentGroup.wxid), 2500);
} else {
this.$message.error('刷新本群成员交互摘要失败');
}
@@ -509,8 +509,8 @@
wxid: this.currentContextMember.wxid
}).then(response => {
if (response.data.success) {
this.memberContext = response.data.data.context;
this.$message.success('成员交互摘要已刷新');
this.$message.success(response.data.message || '成员交互摘要刷新任务已提交');
setTimeout(() => this.loadMemberContext(), 2500);
} else {
this.$message.error('刷新成员交互摘要失败');
}