optz
This commit is contained in:
19
cmd/main.go
19
cmd/main.go
@@ -1,11 +1,30 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"git.apinb.com/quant/collector/internal/impl"
|
||||
"git.apinb.com/quant/collector/internal/logic"
|
||||
"github.com/marcsauter/single"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 互斥体名称,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()
|
||||
|
||||
impl.NewImpl()
|
||||
logic.Boot()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user