This commit is contained in:
2026-04-07 14:46:49 +08:00
parent aaa8308a90
commit 35e52bc5ea
14 changed files with 234 additions and 620 deletions

View File

@@ -7,6 +7,7 @@ import (
"os/signal"
"strconv"
"syscall"
"time"
"git.apinb.com/quant/collector/collector"
"git.apinb.com/quant/collector/storage"
@@ -18,8 +19,8 @@ func main() {
// 从环境变量获取配置
collectorURL := getEnv("COLLECTOR_URL", "http://localhost:5000/status")
dbConnStr := getEnv("DATABASE_URL", "postgres://user:password@localhost:5432/qmt_db?sslmode=disable")
interval := getEnvAsInt("COLLECTION_INTERVAL", 5) // 默认5
dbConnStr := getEnv("DATABASE_URL", "host=139.224.247.176 user=postgres password=Stock0310~! dbname=stock_prod port=19432 sslmode=disable TimeZone=Asia/Shanghai")
interval := getEnvAsInt("COLLECTION_INTERVAL", 60) // 默认60
log.Printf("采集地址: %s", collectorURL)
log.Printf("采集间隔: %d秒", interval)
@@ -58,10 +59,6 @@ func main() {
c.Start()
log.Println("定时任务已启动")
// 立即执行一次采集
log.Println("执行首次采集...")
runCollection(coll, store)
// 等待退出信号
quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
@@ -76,12 +73,16 @@ func main() {
func runCollection(coll *collector.Collector, store *storage.Storage) {
log.Println("开始采集...")
// 计算Ymd
now := time.Now()
ymd := now.Year()*10000 + int(now.Month())*100 + now.Day()
// 采集数据并检查变化
status, dataHash, changed, err := coll.CollectAndCheck()
if err != nil {
log.Printf("采集失败: %v", err)
// 记录失败的日志
if err := store.SaveCollectionLog("", false, err.Error()); err != nil {
if err := store.SaveCollectionLog("", ymd, false, err.Error()); err != nil {
log.Printf("保存采集日志失败: %v", err)
}
return
@@ -93,7 +94,7 @@ func runCollection(coll *collector.Collector, store *storage.Storage) {
// 如果数据没有变化,只记录日志
if !changed {
log.Println("数据未变化,跳过存储")
if err := store.SaveCollectionLog(dataHash, false, "数据未变化"); err != nil {
if err := store.SaveCollectionLog(dataHash, ymd, false, "数据未变化"); err != nil {
log.Printf("保存采集日志失败: %v", err)
}
return
@@ -104,14 +105,14 @@ func runCollection(coll *collector.Collector, store *storage.Storage) {
if err := store.SaveStatus(status, dataHash); err != nil {
log.Printf("保存数据失败: %v", err)
// 记录失败的日志
if err := store.SaveCollectionLog(dataHash, true, err.Error()); err != nil {
if err := store.SaveCollectionLog(dataHash, ymd, true, err.Error()); err != nil {
log.Printf("保存采集日志失败: %v", err)
}
return
}
// 记录成功的日志
if err := store.SaveCollectionLog(dataHash, true, "数据保存成功"); err != nil {
if err := store.SaveCollectionLog(dataHash, ymd, true, "数据保存成功"); err != nil {
log.Printf("保存采集日志失败: %v", err)
}