淇敼锛?銆佸皢鏃ュ織鑷畾涔夊啓鍏ユ棩蹇楁枃浠?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"
|
"zhub/zsub"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
var (
|
||||||
server := true
|
dir, _ = os.Getwd()
|
||||||
confPath := "app.conf"
|
confPath = dir + "/app.ini" // 配置文件地址
|
||||||
addr := ""
|
server = true
|
||||||
|
addr = "" // 服务地址
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
for _, arg := range os.Args[1:] {
|
for _, arg := range os.Args[1:] {
|
||||||
if strings.EqualFold(arg, "cli") {
|
if strings.EqualFold(arg, "cli") {
|
||||||
server = false
|
server = false
|
||||||
@@ -35,7 +38,7 @@ func main() {
|
|||||||
switch os.Args[2] {
|
switch os.Args[2] {
|
||||||
case "timer":
|
case "timer":
|
||||||
cli.Cmd("reload-timer")
|
cli.Cmd("reload-timer")
|
||||||
case "shutdown":
|
case "shutdown", "stop":
|
||||||
cli.Cmd("shutdown")
|
cli.Cmd("shutdown")
|
||||||
}
|
}
|
||||||
cli.Close()
|
cli.Close()
|
||||||
|
|||||||
2
pkg.bat
2
pkg.bat
@@ -1,6 +1,6 @@
|
|||||||
SET GOOS=linux
|
SET GOOS=linux
|
||||||
SET GOARCH=amd64
|
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
|
upx -9 zhub.sh
|
||||||
|
|
||||||
rem scp zhub.sh dev:/opt/zhub
|
rem scp zhub.sh dev:/opt/zhub
|
||||||
|
|||||||
@@ -10,12 +10,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
dir, _ = os.Getwd()
|
||||||
config = make(map[string]string)
|
config = make(map[string]string)
|
||||||
LogDebug bool
|
LogDebug bool
|
||||||
DataDir = ""
|
datadir = dir + "/data"
|
||||||
)
|
)
|
||||||
|
|
||||||
func LoadConf(path string) {
|
func LoadConf(path string) {
|
||||||
|
//log.Println("APP_CONF =", path)
|
||||||
f, err := os.Open(path)
|
f, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panicln(err)
|
log.Panicln(err)
|
||||||
@@ -55,8 +57,14 @@ func LoadConf(path string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
LogDebug = strings.EqualFold(config["log.level"], "debug")
|
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 {
|
func GetStr(key string, def string) string {
|
||||||
@@ -77,3 +85,49 @@ func GetInt(key string, def int) int {
|
|||||||
}
|
}
|
||||||
return n
|
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 {
|
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") {
|
if !c.auth && !strings.EqualFold("auth", rcmd[0]) && strings.EqualFold(GetStr("service.auth", "0"), "1") {
|
||||||
c.send("-Auth: NOAUTH Authentication required:" + rcmd[0])
|
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() {
|
func (s *ZSub) dataStorage() {
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
log.Println("dataStorage Recovered:", r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
s.Lock()
|
s.Lock()
|
||||||
defer s.Unlock()
|
defer s.Unlock()
|
||||||
// ========================== delay save ===========================
|
// ========================== delay save ===========================
|
||||||
@@ -49,11 +55,11 @@ func (s *ZSub) dataStorage() {
|
|||||||
s.delayup = false
|
s.delayup = false
|
||||||
}()
|
}()
|
||||||
|
|
||||||
err := os.Remove(DataDir + "/delay.z")
|
err := os.Remove(datadir + "/delay.z")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
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 {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
@@ -74,7 +80,7 @@ func (s *ZSub) dataStorage() {
|
|||||||
|
|
||||||
// ========================== lock save ===========================
|
// ========================== lock save ===========================
|
||||||
func() {
|
func() {
|
||||||
err := os.Remove(DataDir + "/lock.z")
|
err := os.Remove(datadir + "/lock.z")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
@@ -85,12 +91,12 @@ func (s *ZSub) dataStorage() {
|
|||||||
break // 只记录获得锁的记录
|
break // 只记录获得锁的记录
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Append(str, DataDir+"/lock.z")
|
Append(str, datadir+"/lock.z")
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ZSub) loadDelay() {
|
func (s *ZSub) loadDelay() {
|
||||||
f, err := os.Open(DataDir + "/delay.z")
|
f, err := os.Open(datadir + "/delay.z")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -125,7 +131,7 @@ func (s *ZSub) loadDelay() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *ZSub) loadLock() {
|
func (s *ZSub) loadLock() {
|
||||||
f, err := os.Open(DataDir + "/lock.z")
|
f, err := os.Open(datadir + "/lock.z")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -171,7 +177,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
LoadConf("app.conf")
|
//LoadConf("app.conf")
|
||||||
/*
|
/*
|
||||||
_db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
|
_db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
|
||||||
GetStr("ztimer.db.user", "root"),
|
GetStr("ztimer.db.user", "root"),
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package zsub
|
package zsub
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
)
|
)
|
||||||
@@ -37,9 +38,12 @@ func (g *ZGroup) appendTo(c *ZConn) {
|
|||||||
|
|
||||||
err := c.send("message", topic, msg)
|
err := c.send("message", topic, msg)
|
||||||
if err != nil { // 失败处理
|
if err != nil { // 失败处理
|
||||||
|
log.Println("topic send err:", err)
|
||||||
g.chMsg <- msg
|
g.chMsg <- msg
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//log.Printf("[ %d ] topic send: %s %s\n", c.sn, topic, msg)
|
||||||
atomic.AddInt32(&g.offset, 1)
|
atomic.AddInt32(&g.offset, 1)
|
||||||
case <-c.stoped:
|
case <-c.stoped:
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -251,8 +251,6 @@ StartServer
|
|||||||
2、init server
|
2、init server
|
||||||
*/
|
*/
|
||||||
func StartServer(addr string) {
|
func StartServer(addr string) {
|
||||||
GetStr("data.dir", "data")
|
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
fun, ok := <-funChan
|
fun, ok := <-funChan
|
||||||
@@ -273,7 +271,7 @@ func StartServer(addr string) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
log.Println("zhub.server = ", addr)
|
log.Println("zhub.server =", addr)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
conn, err := listen.Accept()
|
conn, err := listen.Accept()
|
||||||
|
|||||||
Reference in New Issue
Block a user