修改:使用 数据库配置定时调度,配置变更发送指令重新加载
git-svn-id: svn://47.119.165.148/zhub@67 e63fbceb-bcc3-4977-ac22-735b83d8d0f4
This commit is contained in:
@@ -2,7 +2,9 @@ package zsub
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/robfig/cron"
|
||||
"log"
|
||||
"os/exec"
|
||||
@@ -32,7 +34,9 @@ func (s *ZSub) timer(rcmd []string, c *ZConn) {
|
||||
}
|
||||
s.timers[rcmd[1]] = timer
|
||||
}
|
||||
timer.conns = c.appendTo(timer.conns)
|
||||
if c != nil {
|
||||
timer.conns = c.appendTo(timer.conns)
|
||||
}
|
||||
|
||||
// todo: when timer.expr changed send message to all the timer‘s subscribe
|
||||
if len(rcmd) == 4 && !strings.EqualFold(timer.expr, rcmd[2]) {
|
||||
@@ -55,8 +59,8 @@ func (s *ZSub) timer(rcmd []string, c *ZConn) {
|
||||
}()
|
||||
timer.configSave()
|
||||
}
|
||||
if len(rcmd) == 4 && !strings.EqualFold("a", rcmd[3]) && !timer.single {
|
||||
timer.single = true
|
||||
if len(rcmd) == 4 && (strings.EqualFold("a", rcmd[3]) != timer.single) {
|
||||
timer.single = strings.EqualFold("a", rcmd[3])
|
||||
timer.configSave()
|
||||
}
|
||||
|
||||
@@ -104,14 +108,18 @@ func (t *ZTimer) configSave() {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
fmt.Println(buf.String())
|
||||
//fmt.Println(buf.String())
|
||||
|
||||
rest, err, s := executeShell(buf.String())
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
fmt.Println("res:", rest)
|
||||
fmt.Println("error-rest:", s)
|
||||
if !strings.EqualFold(rest, "") {
|
||||
fmt.Println("res:", rest)
|
||||
}
|
||||
if !strings.EqualFold(s, "") {
|
||||
fmt.Println("error-rest:", s)
|
||||
}
|
||||
}
|
||||
|
||||
func executeShell(command string) (string, error, string) {
|
||||
@@ -123,3 +131,27 @@ func executeShell(command string) (string, error, string) {
|
||||
err := cmd.Run()
|
||||
return stdout.String(), err, stderr.String()
|
||||
}
|
||||
|
||||
func (s *ZSub) reloadTimerConfig() {
|
||||
db, err := sql.Open("mysql", "root:*Zhong123098!@tcp(47.111.150.118:6063)/platf_oth?charset=utf8") // dev
|
||||
//db, err := sql.Open("mysql", "root:*Hello@27.com!@tcp(0.0.0.0:6033)/platf_oth?charset=utf8") // qc
|
||||
//db, err := sql.Open("mysql", "root:*Hello@27.com!@tcp(122.112.180.156:6033)/platf_oth?charset=utf8") // pro
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
rows, err := db.Query("SELECT t.`name`,t.`expr`,IF(t.`single`=1,'a','x') 'single' FROM tasktimer t WHERE t.`status`=10 ORDER BY t.`timerid`")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
for rows.Next() {
|
||||
var name string
|
||||
var expr string
|
||||
var single string
|
||||
rows.Scan(&name, &expr, &single)
|
||||
s.timer([]string{"timer", name, expr, single}, nil) //["timer", topic, expr, a|x]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user