合并路由
This commit is contained in:
@@ -16,15 +16,13 @@ import (
|
||||
"os" // 操作系统信号
|
||||
"os/signal" // 信号捕获
|
||||
"syscall" // 系统调用(SIGTERM)
|
||||
"time" // 定期刷盘定时器
|
||||
|
||||
"sese-engine/analyzer" // 文本分析和关键词提取
|
||||
"sese-engine/backlink" // 反向链接(繁荣值)计算
|
||||
"sese-engine/config" // 全局配置
|
||||
"sese-engine/crawler" // BFS 爬虫
|
||||
"sese-engine/harvester" // 收获服务器(索引写入)
|
||||
"sese-engine/info" // info 服务(繁荣表、调整表、屏蔽词)
|
||||
"sese-engine/search" // 搜索服务器
|
||||
"sese-engine/search" // 搜索服务器(内嵌收获服务)
|
||||
"sese-engine/storage" // 持久化存储
|
||||
)
|
||||
|
||||
@@ -60,25 +58,8 @@ func main() {
|
||||
}
|
||||
defer anal.Close()
|
||||
|
||||
// ---- 4. 收获服务器(:5000):接收爬虫发来的索引数据 ----
|
||||
harvSrv := harvester.New(db, infoSvc)
|
||||
go func() {
|
||||
if err := harvSrv.ListenAndServe(":5000"); err != nil {
|
||||
log.Fatalf("[harvester] fatal: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
// ---- 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, "http://localhost:5000")
|
||||
// ---- 4. 搜索服务器(默认 :80):对外提供搜索 API,同时内嵌收获服务(统一端口)
|
||||
searchSrv := search.New(db, infoSvc, anal)
|
||||
go func() {
|
||||
addr := fmt.Sprintf(":%d", config.SearchServerPort)
|
||||
if err := searchSrv.ListenAndServe(addr); err != nil {
|
||||
@@ -104,5 +85,5 @@ func main() {
|
||||
signal.Notify(quit, os.Interrupt, syscall.SIGTERM)
|
||||
<-quit
|
||||
log.Println("shutdown signal received, flushing index...")
|
||||
harvSrv.Flush() // 退出前刷盘,不丢数据
|
||||
searchSrv.Flush() // 退出前刷盘,不丢数据
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user