117 lines
3.2 KiB
Go
117 lines
3.2 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"log"
|
||
"os"
|
||
"os/signal"
|
||
"syscall"
|
||
|
||
"github.com/goccy/go-yaml"
|
||
|
||
handler "getErpSendPublishing/controller"
|
||
"getErpSendPublishing/utils"
|
||
"getErpSendPublishing/utils/dbConnectUtil"
|
||
|
||
"github.com/gin-gonic/gin"
|
||
)
|
||
|
||
var config Config
|
||
|
||
type Config struct {
|
||
RedisDb struct {
|
||
Addr string `yaml:"addr"`
|
||
Password string `yaml:"password"`
|
||
db int `yaml:"db"`
|
||
} `yaml:"redis-db"`
|
||
|
||
RedisDbTwo struct {
|
||
Addr string `yaml:"addr"`
|
||
Password string `yaml:"password"`
|
||
db int `yaml:"db"`
|
||
} `yaml:"redis-dbTwo"`
|
||
}
|
||
|
||
// 加载配置文件
|
||
func loadConfig() error {
|
||
configFile, err := os.ReadFile("config.yaml")
|
||
if err != nil {
|
||
return fmt.Errorf("读取配置文件失败: %v", err)
|
||
}
|
||
|
||
if err := yaml.Unmarshal(configFile, &config); err != nil {
|
||
return fmt.Errorf("解析配置文件失败: %v", err)
|
||
}
|
||
|
||
return nil
|
||
}
|
||
|
||
func main() {
|
||
// 加载配置
|
||
if err := loadConfig(); err != nil {
|
||
log.Fatalf("加载配置失败: %v", err)
|
||
}
|
||
|
||
log.Printf("config.RedisDb%v", config.RedisDb)
|
||
// 初始化默认Redis(用于任务存储)- 本地Redis
|
||
utils.InitRedis(config.RedisDb.Addr, config.RedisDb.Password, config.RedisDb.db)
|
||
|
||
// 初始化缓存Redis(用于商品图片缓存)- 远程Redis
|
||
utils.InitCacheRedis(config.RedisDbTwo.Addr, config.RedisDbTwo.Password, config.RedisDbTwo.db)
|
||
|
||
//// 初始化第二个Redis连接(库7,用于Header数据查询)
|
||
if err := utils.InitRedisTwo(); err != nil {
|
||
log.Fatalf("RedisTwo初始化失败: %v", err)
|
||
}
|
||
//log.Println("RedisTwo初始化成功(连接到103.236.74.207:6379,库7)")
|
||
|
||
// 初始化专门用于ParseFormData函数的Redis连接(库13,用于查重)
|
||
if err := utils.InitRedisTwoForParseFormData(); err != nil {
|
||
log.Fatalf("RedisTwoForParseFormData初始化失败: %v", err)
|
||
}
|
||
log.Println("RedisTwoForParseFormData初始化成功(连接到36.212.1.63:6379,库13)")
|
||
|
||
// 初始化全局MySQL连接池(单例,被所有查重接口复用,防止大量连接同时创建)
|
||
if _, err := dbConnectUtil.InitDB("zhishu", "XsRR4K3ATizyc5BK", "146.56.227.42", 3306); err != nil {
|
||
log.Fatalf("全局MySQL连接初始化失败: %v", err)
|
||
}
|
||
log.Println("全局MySQL连接池初始化成功(zhishu@146.56.227.42:3306),最大连接数=20")
|
||
|
||
// 初始化Gin
|
||
router := gin.Default()
|
||
|
||
// 注册路由
|
||
|
||
//查重
|
||
router.POST("/api/goods/simple", handler.ParseFormData)
|
||
|
||
//批量查重
|
||
router.POST("/api/goods/batchDeduplication", handler.BatchProcessCenterBooks)
|
||
|
||
//新 - 单挑查重
|
||
router.POST("/api/goods/newParseFormData", handler.NewParseFormData)
|
||
|
||
//新 - 闲鱼多店铺去重
|
||
router.POST("/api/goods/goofish/multipleStores", handler.MultipleStores)
|
||
|
||
//新 - 闲鱼多店去重,本地确认多店铺
|
||
router.POST("/api/goods/goofish/singleShopMultipleStores", handler.SingleShopMultipleStores)
|
||
|
||
// 启动HTTP服务器
|
||
go func() {
|
||
log.Println("HTTP服务器启动在 :8182")
|
||
if err := router.Run(":8182"); err != nil {
|
||
log.Fatal("HTTP服务器启动失败:", err)
|
||
}
|
||
}()
|
||
|
||
// 等待中断信号
|
||
sigChan := make(chan os.Signal, 1)
|
||
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
|
||
|
||
<-sigChan
|
||
log.Println("接收到中断信号,正在关闭服务...")
|
||
|
||
log.Println("服务已关闭")
|
||
}
|