feat: 添加数据库配置和相关模型定义

This commit is contained in:
2026-03-31 14:44:14 +08:00
parent 776e085ea3
commit b7cce0befa
12 changed files with 284 additions and 60 deletions

73
main.go
View File

@@ -8,7 +8,6 @@ import (
"os/signal"
"syscall"
"gitea.com/red-future/common/elasticsearch"
"gitea.com/red-future/common/http"
"gitea.com/red-future/common/jaeger"
"gitea.com/red-future/common/rabbitmq"
@@ -45,41 +44,41 @@ func main() {
controller.XiaohongshuController, // 小红书Webhook接口
})
// 初始化消费者管理器并注册所有消费者
mgr := rabbitmq.NewConsumerManager(ctx)
// 注册响应消费者
responseConsumer := service.NewResponseConsumer(ctx)
mgr.Register("响应消费者", responseConsumer.Start, responseConsumer.Stop)
// 注册追问消费者
followUpConsumer := service.NewFollowUpConsumer(ctx)
mgr.Register("追问消费者", followUpConsumer.Start, followUpConsumer.Stop)
// 注册会话归档消费者
sessionArchiveConsumer := service.NewSessionArchiveConsumer(ctx)
mgr.Register("会话归档消费者", sessionArchiveConsumer.Start, sessionArchiveConsumer.Stop)
// 注册延时落库消费者
delayedFlushConsumer := service.NewDelayedFlushConsumer(ctx)
mgr.Register("延时落库消费者", delayedFlushConsumer.Start, delayedFlushConsumer.Stop)
// 初始化并启动所有消费者
if err := mgr.Init(); err != nil {
glog.Fatalf(ctx, "消费者管理器初始化失败: %v", err)
}
// 初始化 ES 客户端
if !g.Cfg().MustGet(ctx, "elasticsearch").IsEmpty() {
if err := elasticsearch.Init(ctx); err != nil {
glog.Warningf(ctx, "ES 初始化失败(月度归档功能不可用): %v", err)
}
}
// 启动月度归档定时任务
if !g.Cfg().MustGet(ctx, "mongo").IsEmpty() && !g.Cfg().MustGet(ctx, "elasticsearch").IsEmpty() {
service.ArchiveService.StartCron(ctx)
}
//// 初始化消费者管理器并注册所有消费者
//mgr := rabbitmq.NewConsumerManager(ctx)
//
//// 注册响应消费者
//responseConsumer := service.NewResponseConsumer(ctx)
//mgr.Register("响应消费者", responseConsumer.Start, responseConsumer.Stop)
//
//// 注册追问消费者
//followUpConsumer := service.NewFollowUpConsumer(ctx)
//mgr.Register("追问消费者", followUpConsumer.Start, followUpConsumer.Stop)
//
//// 注册会话归档消费者
//sessionArchiveConsumer := service.NewSessionArchiveConsumer(ctx)
//mgr.Register("会话归档消费者", sessionArchiveConsumer.Start, sessionArchiveConsumer.Stop)
//
//// 注册延时落库消费者
//delayedFlushConsumer := service.NewDelayedFlushConsumer(ctx)
//mgr.Register("延时落库消费者", delayedFlushConsumer.Start, delayedFlushConsumer.Stop)
//
//// 初始化并启动所有消费者
//if err := mgr.Init(); err != nil {
// glog.Fatalf(ctx, "消费者管理器初始化失败: %v", err)
//}
//
//// 初始化 ES 客户端
//if !g.Cfg().MustGet(ctx, "elasticsearch").IsEmpty() {
// if err := elasticsearch.Init(ctx); err != nil {
// glog.Warningf(ctx, "ES 初始化失败(月度归档功能不可用): %v", err)
// }
//}
//
//// 启动月度归档定时任务
//if !g.Cfg().MustGet(ctx, "mongo").IsEmpty() && !g.Cfg().MustGet(ctx, "elasticsearch").IsEmpty() {
// service.ArchiveService.StartCron(ctx)
//}
// 监听系统信号,支持 Ctrl+C 优雅退出
quit := make(chan os.Signal, 1)
@@ -89,7 +88,7 @@ func main() {
glog.Info(ctx, "收到停止信号,正在关闭服务...")
// 停止所有消费者并关闭RabbitMQ连接
mgr.Stop()
//mgr.Stop()
glog.Info(ctx, "customerservice 服务已停止")
}