fix 分页bug,加入手动刷盘

This commit is contained in:
2026-04-08 19:56:26 +08:00
parent 6637dff254
commit d14c9caa56
3 changed files with 175 additions and 21 deletions
+13 -2
View File
@@ -16,6 +16,7 @@ import (
"os" // 操作系统信号
"os/signal" // 信号捕获
"syscall" // 系统调用(SIGTERM
"time" // 定期刷盘定时器
"sese-engine/analyzer" // 文本分析和关键词提取
"sese-engine/backlink" // 反向链接(繁荣值)计算
@@ -67,8 +68,17 @@ func main() {
}
}()
// ---- 4b. 定期刷盘:每 60 秒强制将内存索引写入磁盘,确保搜索实时可用 ----
go func() {
ticker := time.NewTicker(60 * time.Second)
defer ticker.Stop()
for range ticker.C {
harvSrv.Flush()
}
}()
// ---- 5. 搜索服务器(默认 :80):对外提供搜索 API ----
searchSrv := search.New(db, infoSvc, anal)
searchSrv := search.New(db, infoSvc, anal, "http://localhost:5000")
go func() {
addr := fmt.Sprintf(":%d", config.SearchServerPort)
if err := searchSrv.ListenAndServe(addr); err != nil {
@@ -93,5 +103,6 @@ func main() {
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt, syscall.SIGTERM)
<-quit
log.Println("shutdown signal received, exiting...")
log.Println("shutdown signal received, flushing index...")
harvSrv.Flush() // 退出前刷盘,不丢数据
}