mirror of
https://git.oceanpay.cc/danial/kami_scripts.git
synced 2025-12-18 21:12:33 +00:00
- 在 main.go 中集成文件锁,确保应用程序只能有一个实例运行 - 新增 lock.go 文件,提供锁定和解锁文件的功能 - 更新 go.mod 和 go.sum 文件,引入 gofrs/flock 依赖 - 修改 submit_order.go 中的日志记录,优化订单发送信息
31 lines
523 B
Go
31 lines
523 B
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/gofrs/flock"
|
|
)
|
|
|
|
var fileLock *flock.Flock
|
|
|
|
// LockFile 尝试锁定指定文件
|
|
func LockFile(path string) error {
|
|
fileLock = flock.New(path)
|
|
locked, err := fileLock.TryLock()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if !locked {
|
|
return errors.New("无法获得文件锁,可能已有其他实例在运行")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// UnlockFile 释放锁
|
|
func UnlockFile() error {
|
|
if fileLock == nil {
|
|
return errors.New("lock file not initialized")
|
|
}
|
|
return fileLock.Unlock()
|
|
}
|