淇敼锛?銆佸皢鏃ュ織鑷畾涔夊啓鍏ユ棩蹇楁枃浠?zhub.log 2銆佸叾浠栦紭鍖?
git-svn-id: svn://47.119.165.148/zhub@164 e63fbceb-bcc3-4977-ac22-735b83d8d0f4
This commit is contained in:
13
main.go
13
main.go
@@ -9,11 +9,14 @@ import (
|
||||
"zhub/zsub"
|
||||
)
|
||||
|
||||
func main() {
|
||||
server := true
|
||||
confPath := "app.conf"
|
||||
addr := ""
|
||||
var (
|
||||
dir, _ = os.Getwd()
|
||||
confPath = dir + "/app.ini" // 配置文件地址
|
||||
server = true
|
||||
addr = "" // 服务地址
|
||||
)
|
||||
|
||||
func main() {
|
||||
for _, arg := range os.Args[1:] {
|
||||
if strings.EqualFold(arg, "cli") {
|
||||
server = false
|
||||
@@ -35,7 +38,7 @@ func main() {
|
||||
switch os.Args[2] {
|
||||
case "timer":
|
||||
cli.Cmd("reload-timer")
|
||||
case "shutdown":
|
||||
case "shutdown", "stop":
|
||||
cli.Cmd("shutdown")
|
||||
}
|
||||
cli.Close()
|
||||
|
||||
2
pkg.bat
2
pkg.bat
@@ -1,6 +1,6 @@
|
||||
SET GOOS=linux
|
||||
SET GOARCH=amd64
|
||||
go build -o zhub.sh -ldflags "-s -w" ./main.go
|
||||
go build -o zhub.sh -ldflags "-s -w"
|
||||
upx -9 zhub.sh
|
||||
|
||||
rem scp zhub.sh dev:/opt/zhub
|
||||
|
||||
@@ -10,12 +10,14 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
dir, _ = os.Getwd()
|
||||
config = make(map[string]string)
|
||||
LogDebug bool
|
||||
DataDir = ""
|
||||
datadir = dir + "/data"
|
||||
)
|
||||
|
||||
func LoadConf(path string) {
|
||||
//log.Println("APP_CONF =", path)
|
||||
f, err := os.Open(path)
|
||||
if err != nil {
|
||||
log.Panicln(err)
|
||||
@@ -55,8 +57,14 @@ func LoadConf(path string) {
|
||||
}
|
||||
|
||||
LogDebug = strings.EqualFold(config["log.level"], "debug")
|
||||
DataDir = GetStr("data.dir", "data")
|
||||
os.MkdirAll(DataDir, os.ModeDir)
|
||||
|
||||
datadir = GetStr("data.dir", "${APP_HOME}/data")
|
||||
datadir = strings.ReplaceAll(datadir, "${APP_HOME}", dir)
|
||||
|
||||
os.MkdirAll(datadir, os.ModeDir)
|
||||
os.Chmod(datadir, 0777)
|
||||
|
||||
initLog()
|
||||
}
|
||||
|
||||
func GetStr(key string, def string) string {
|
||||
@@ -77,3 +85,49 @@ func GetInt(key string, def int) int {
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func initLog() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println("initLog Err:", r)
|
||||
}
|
||||
}()
|
||||
|
||||
file, err := os.OpenFile("zhub.log", os.O_CREATE|os.O_APPEND|os.O_SYNC|os.O_RDWR, 0777)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
log.SetOutput(file)
|
||||
|
||||
/*
|
||||
if strings.EqualFold(GetStr("log.handlers", "console"), "console") {
|
||||
return
|
||||
}
|
||||
|
||||
var logfile = GetStr("log.pattern", "${APP_HOME}/logs-200601/log-20060102.log")
|
||||
|
||||
c := cron.New()
|
||||
fun := func() {
|
||||
now := time.Now()
|
||||
logfile := strings.ReplaceAll(logfile, "${APP_HOME}", dir)
|
||||
logfile = now.Format(logfile)
|
||||
|
||||
if strings.LastIndexAny(logfile, "/") > 0 {
|
||||
logdir := logfile[0:strings.LastIndexAny(logfile, "/")]
|
||||
os.MkdirAll(logdir, 0666)
|
||||
}
|
||||
|
||||
file, err := os.OpenFile(logfile, os.O_CREATE|os.O_APPEND|os.O_SYNC|os.O_RDWR, 0777)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
//log.Println("SET LOG_FILE =", file.Name())
|
||||
log.SetOutput(file)
|
||||
}
|
||||
fun()
|
||||
|
||||
c.AddFunc("0 0 * * * *", fun)
|
||||
go c.Run()
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ func msgAccept(v Message) {
|
||||
}
|
||||
|
||||
if LogDebug {
|
||||
log.Println("[", v.Conn.sn, "] rcmd: "+strings.Join(rcmd, " "))
|
||||
log.Printf("[%d] rcmd: %s\n", v.Conn.sn, strings.Join(rcmd, " "))
|
||||
}
|
||||
if !c.auth && !strings.EqualFold("auth", rcmd[0]) && strings.EqualFold(GetStr("service.auth", "0"), "1") {
|
||||
c.send("-Auth: NOAUTH Authentication required:" + rcmd[0])
|
||||
|
||||
20
zsub/zdb.go
20
zsub/zdb.go
@@ -38,6 +38,12 @@ func Append(str string, fileName string) {
|
||||
|
||||
// 数据持久化
|
||||
func (s *ZSub) dataStorage() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println("dataStorage Recovered:", r)
|
||||
}
|
||||
}()
|
||||
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
// ========================== delay save ===========================
|
||||
@@ -49,11 +55,11 @@ func (s *ZSub) dataStorage() {
|
||||
s.delayup = false
|
||||
}()
|
||||
|
||||
err := os.Remove(DataDir + "/delay.z")
|
||||
err := os.Remove(datadir + "/delay.z")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
file, err := os.OpenFile(DataDir+"/delay.z", os.O_CREATE|os.O_WRONLY, os.ModeAppend)
|
||||
file, err := os.OpenFile(datadir+"/delay.z", os.O_CREATE|os.O_WRONLY, os.ModeAppend)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
@@ -74,7 +80,7 @@ func (s *ZSub) dataStorage() {
|
||||
|
||||
// ========================== lock save ===========================
|
||||
func() {
|
||||
err := os.Remove(DataDir + "/lock.z")
|
||||
err := os.Remove(datadir + "/lock.z")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
@@ -85,12 +91,12 @@ func (s *ZSub) dataStorage() {
|
||||
break // 只记录获得锁的记录
|
||||
}
|
||||
}
|
||||
Append(str, DataDir+"/lock.z")
|
||||
Append(str, datadir+"/lock.z")
|
||||
}()
|
||||
}
|
||||
|
||||
func (s *ZSub) loadDelay() {
|
||||
f, err := os.Open(DataDir + "/delay.z")
|
||||
f, err := os.Open(datadir + "/delay.z")
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -125,7 +131,7 @@ func (s *ZSub) loadDelay() {
|
||||
}
|
||||
|
||||
func (s *ZSub) loadLock() {
|
||||
f, err := os.Open(DataDir + "/lock.z")
|
||||
f, err := os.Open(datadir + "/lock.z")
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -171,7 +177,7 @@ var (
|
||||
)
|
||||
|
||||
func init() {
|
||||
LoadConf("app.conf")
|
||||
//LoadConf("app.conf")
|
||||
/*
|
||||
_db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
|
||||
GetStr("ztimer.db.user", "root"),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package zsub
|
||||
|
||||
import (
|
||||
"log"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
)
|
||||
@@ -37,9 +38,12 @@ func (g *ZGroup) appendTo(c *ZConn) {
|
||||
|
||||
err := c.send("message", topic, msg)
|
||||
if err != nil { // 失败处理
|
||||
log.Println("topic send err:", err)
|
||||
g.chMsg <- msg
|
||||
return
|
||||
}
|
||||
|
||||
//log.Printf("[ %d ] topic send: %s %s\n", c.sn, topic, msg)
|
||||
atomic.AddInt32(&g.offset, 1)
|
||||
case <-c.stoped:
|
||||
return
|
||||
|
||||
@@ -251,8 +251,6 @@ StartServer
|
||||
2、init server
|
||||
*/
|
||||
func StartServer(addr string) {
|
||||
GetStr("data.dir", "data")
|
||||
|
||||
go func() {
|
||||
for {
|
||||
fun, ok := <-funChan
|
||||
|
||||
Reference in New Issue
Block a user