重构:重命名核心组件并增强查询功能

主要更改:

1. 核心重命名
   - Seqlog -> LogHub (更准确地反映其作为日志中枢的角色)
   - NewSeqlog() -> NewLogHub()
   - LogCursor -> ProcessCursor (更准确地反映其用于处理场景)
   - seqlog_manager.go -> loghub.go (文件名与结构体名对应)

2. TopicProcessor.Reset 增强
   - 如果正在运行且没有待处理的日志,会自动停止后重置
   - 如果有待处理的日志,返回详细错误(显示已处理/总记录数)
   - 简化了 LogHub.ResetTopic,移除显式 Stop 调用

3. 新增查询方法
   - TopicProcessor.QueryFromFirst(count) - 从第一条记录向索引递增方向查询
   - TopicProcessor.QueryFromLast(count) - 从最后一条记录向索引递减方向查询
   - LogHub.QueryFromFirst(topic, count)
   - LogHub.QueryFromLast(topic, count)

4. 测试覆盖
   - 添加 query_test.go - QueryFromProcessing 测试
   - 添加 TestQueryFromFirstAndLast - TopicProcessor 查询测试
   - 添加 TestLogHubQueryFromFirstAndLast - LogHub 查询测试
   - 添加 TestTopicResetWithPendingRecords - Reset 增强功能测试

5. 示例代码
   - 添加 example/get_record/ - 演示 QueryFromProcessing 用法
   - 更新所有示例以使用 LogHub 和新 API

所有测试通过 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 13:26:21 +08:00
parent dfdc27c67f
commit 90cc9e21c9
14 changed files with 795 additions and 275 deletions

View File

@@ -70,25 +70,25 @@ func main() {
fmt.Printf("从第 %d 条记录开始查询\n", startIndex)
// 向索引递减方向查询(查询更早的记录)
// QueryNewest(4, 3) 查询索引 2, 3, 4返回按索引递增排序
backward, err := query.QueryNewest(startIndex-1, 3)
// QueryOldest(5, 3) 查询索引 2, 3, 4(不包含 5,返回按索引递增排序
backward, err := query.QueryOldest(startIndex, 3)
if err != nil {
log.Fatal(err)
}
fmt.Printf("向索引递减方向查询 3 条记录(索引 2-4:\n")
for i, rec := range backward {
fmt.Printf(" [%d] 数据=%s\n", i, string(rec.Data))
fmt.Printf("向索引递减方向查询 3 条记录:\n")
for _, rec := range backward {
fmt.Printf(" [索引 %d] 数据=%s\n", rec.Index, string(rec.Record.Data))
}
// 向索引递增方向查询(查询更新的记录)
// QueryOldest(5, 3) 查询索引 5, 6, 7,返回按索引递增排序
forward, err := query.QueryOldest(startIndex, 3)
// QueryNewest(5, 3) 查询索引 6, 7, 8不包含 5,返回按索引递增排序
forward, err := query.QueryNewest(startIndex, 3)
if err != nil {
log.Fatal(err)
}
fmt.Printf("向索引递增方向查询 3 条记录(索引 5-7:\n")
for i, rec := range forward {
fmt.Printf(" [%d] 数据=%s\n", i, string(rec.Data))
fmt.Printf("向索引递增方向查询 3 条记录:\n")
for _, rec := range forward {
fmt.Printf(" [索引 %d] 数据=%s\n", rec.Index, string(rec.Record.Data))
}
fmt.Println()