Golang remote data update with timer lib. You can update config auto.
go get github.com/yale8848/DataUpdater@v0.1.1
- http
type ipData struct {
IP string `json:"ip"`
Country string `json:"country"`
Province string `json:"province"`
City string `json:"city"`
Isp string `json:"isp"`
}
func main() {
data:=&ipData{}
ch := make(chan bool)
ud := NewHttpDataUpdate("get", "http://ip.tianqiapi.com/", nil,data)
ud.ErrListener(func(err error) {
fmt.Println(err)
})
//if data changed, call back
ud.UpdateListener(func(data interface{}) {
if v,ok:=data.(*ipData);ok {
fmt.Printf("%v\r\n",v)
}
if v,ok:=data.([]byte);ok {
fmt.Println(string(v))
}
})
ud.SetDuration(5 * time.Second)
ud.Start()
<-ch
}
- sql
type tt struct {
Id int64
Name string
}
func main() {
ch := make(chan bool)
to:=make([]*tt,0)
sdu:=NewSQLDataUpdate("mysql","xxxxx?charset=utf8","select * from xxxx",
&to)
sdu.ErrListener(func(err error) {
fmt.Println(err)
})
sdu.SetDuration(time.Second*5)
//if data changed, call back
sdu.UpdateListener(func(data interface{}) {
if v,ok:=data.(*[]*tt);ok {
fmt.Printf("%v",v)
}
})
sdu.Start()
<-ch
}