Skip to content

Commit 7e55f11

Browse files
jyxjjjcodex
andauthored
fix(index/meilisearch): refresh progress after update (#2628)
fix(index): refresh progress after update - 手动更新索引完成后刷新索引进度状态 - 保留现有对象计数避免引入计数差值风险 - 记录更新失败时的错误信息 Signed-off-by: jyxjjj <16695261+jyxjjj@users.noreply.github.com> Co-authored-by: Codex <267193182+codex@users.noreply.github.com>
1 parent e7bccc6 commit 7e55f11

1 file changed

Lines changed: 23 additions & 2 deletions

File tree

server/handles/index.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package handles
22

33
import (
44
"context"
5+
"time"
56

67
"github.com/OpenListTeam/OpenList/v4/internal/conf"
78
"github.com/OpenListTeam/OpenList/v4/internal/model"
@@ -55,18 +56,38 @@ func UpdateIndex(c *gin.Context) {
5556
}
5657
go func() {
5758
ctx := context.Background()
59+
progress, err := search.Progress()
60+
if err != nil {
61+
log.Errorf("get index progress error: %+v", err)
62+
progress = &model.IndexProgress{}
63+
}
5864
for _, path := range req.Paths {
59-
err := search.Del(ctx, path)
65+
err = search.Del(ctx, path)
6066
if err != nil {
6167
log.Errorf("delete index on %s error: %+v", path, err)
6268
return
6369
}
6470
}
65-
err := search.BuildIndex(context.Background(), req.Paths,
71+
err = search.BuildIndex(context.Background(), req.Paths,
6672
conf.SlicesMap[conf.IgnorePaths], req.MaxDepth, false)
6773
if err != nil {
6874
log.Errorf("update index error: %+v", err)
75+
now := time.Now()
76+
search.WriteProgress(&model.IndexProgress{
77+
ObjCount: progress.ObjCount,
78+
IsDone: true,
79+
LastDoneTime: &now,
80+
Error: err.Error(),
81+
})
82+
return
6983
}
84+
now := time.Now()
85+
search.WriteProgress(&model.IndexProgress{
86+
ObjCount: progress.ObjCount,
87+
IsDone: true,
88+
LastDoneTime: &now,
89+
Error: "",
90+
})
7091
}()
7192
common.SuccessResp(c)
7293
}

0 commit comments

Comments
 (0)