Files
collector/cmd/main.go

31 lines
706 B
Go
Raw Normal View History

2026-04-07 12:22:57 +08:00
package main
import (
2026-04-24 18:26:01 +08:00
"fmt"
"os"
2026-04-17 14:50:34 +08:00
"git.apinb.com/quant/collector/internal/impl"
"git.apinb.com/quant/collector/internal/logic"
2026-04-24 18:26:01 +08:00
"github.com/marcsauter/single"
2026-04-07 12:22:57 +08:00
)
func main() {
2026-04-24 18:26:01 +08:00
// 互斥体名称Global\CollectorSingleInstance 确保会话全局唯一
s := single.New("CollectorSingleInstance")
// 尝试加锁,如果已有实例运行会返回错误
if err := s.CheckLock(); err != nil {
if err == single.ErrAlreadyRunning {
fmt.Println("collector.exe 已有实例正在运行,本次启动退出。")
os.Exit(0)
}
fmt.Fprintf(os.Stderr, "检查单实例失败: %v\n", err)
os.Exit(1)
}
// 进程退出时自动释放锁
defer s.TryUnlock()
2026-04-17 14:50:34 +08:00
impl.NewImpl()
logic.Boot()
2026-04-07 12:22:57 +08:00
}