2017-08-17 02:37:00 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2017-09-05 02:40:37 +00:00
|
|
|
|
2017-08-23 01:40:54 +00:00
|
|
|
_ "github.com/go-sql-driver/mysql"
|
2017-08-17 02:37:00 +00:00
|
|
|
"go.hoteas.com/hotime"
|
2017-09-05 02:40:37 +00:00
|
|
|
"time"
|
2017-09-05 02:55:14 +00:00
|
|
|
//"fmt"
|
2017-08-17 02:37:00 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
2017-09-05 02:40:37 +00:00
|
|
|
a:=hotime.Map{}
|
2017-09-05 02:55:14 +00:00
|
|
|
a.Put("x",1)
|
|
|
|
for i:=0;i<30 ;i++ {
|
2017-09-05 02:40:37 +00:00
|
|
|
go func() {
|
|
|
|
for j:=0;j<30 ;j++ {
|
|
|
|
if j/2==0{
|
2017-09-05 02:55:14 +00:00
|
|
|
hotime.SafeMutex("test", func() interface{} {
|
|
|
|
|
|
|
|
a.Put("x","1")
|
|
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
}else {
|
|
|
|
//fmt.Println(a.GetInt64("x"))
|
|
|
|
a.Delete("x")
|
2017-09-05 02:40:37 +00:00
|
|
|
}
|
2017-08-17 02:37:00 +00:00
|
|
|
|
2017-09-05 02:40:37 +00:00
|
|
|
}
|
|
|
|
}()
|
2017-08-17 02:37:00 +00:00
|
|
|
|
|
|
|
|
2017-09-05 02:40:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
time.Sleep(time.Second*5)
|
|
|
|
|
|
|
|
//appIns := hotime.Application{}
|
|
|
|
//i := 0
|
|
|
|
//
|
|
|
|
//appIns.SetConnectListener(func(context *hotime.Context) bool {
|
|
|
|
// fmt.Println(i)
|
|
|
|
// i++
|
|
|
|
// //this.HandlerStr = "/test.html"
|
|
|
|
// return true
|
|
|
|
//})
|
|
|
|
//
|
|
|
|
////手动模式,
|
|
|
|
//appIns.SetConfig()
|
|
|
|
//appIns.SetConnectDB(func(err ...*hotime.Error) *sql.DB {
|
2017-08-17 02:37:00 +00:00
|
|
|
// query := appIns.Config.GetString("dbUser") + ":" + appIns.Config.GetString("dbPwd") +
|
|
|
|
// "@tcp(" + appIns.Config.GetString("dbHost") + ":" + appIns.Config.GetString("dbPort") + ")/" + appIns.Config.GetString("dbName") + "?charset=utf8"
|
|
|
|
// DB, e := sql.Open("mysql", query)
|
|
|
|
// if e != nil && len(err) != 0 {
|
|
|
|
// err[0].SetError(e)
|
|
|
|
// }
|
|
|
|
// return DB
|
|
|
|
//})
|
2017-09-05 02:40:37 +00:00
|
|
|
//appIns.SetSession(hotime.CacheIns(&hotime.CacheMemory{}), hotime.CacheIns(&hotime.CacheDb{Db: &appIns.Db, Time: appIns.Config.GetInt64("cacheTime")}))
|
|
|
|
//appIns.SetCache(hotime.CacheIns(&hotime.CacheMemory{}))
|
|
|
|
//
|
|
|
|
////快捷模式
|
|
|
|
////appIns.SetDefault(func(err ...*hotime.Error) *sql.DB {
|
|
|
|
//// query := appIns.Config.GetString("dbUser") + ":" + appIns.Config.GetString("dbPwd") +
|
|
|
|
//// "@tcp(" + appIns.Config.GetString("dbHost") + ":" + appIns.Config.GetString("dbPort") + ")/" + appIns.Config.GetString("dbName") + "?charset=utf8"
|
|
|
|
//// DB, e := sql.Open("mysql", query)
|
|
|
|
//// if e != nil && len(err) != 0 {
|
|
|
|
//// err[0].SetError(e)
|
|
|
|
//// }
|
|
|
|
//// return DB
|
|
|
|
////})
|
|
|
|
//
|
|
|
|
//appIns.Run(hotime.Router{
|
|
|
|
// "app": hotime.Proj{
|
|
|
|
// "index": hotime.Ctr{
|
|
|
|
// "test": func(this *hotime.Context) {
|
|
|
|
// fmt.Println(this.Db.GetTag())
|
|
|
|
// x:=this.Db.Action(func(db hotime.HoTimeDB) bool {
|
|
|
|
//
|
|
|
|
// db.Insert("user",hotime.Map{"unickname":"dasdas"})
|
|
|
|
//
|
|
|
|
// return true
|
|
|
|
// })
|
|
|
|
// this.Display(5, x)
|
|
|
|
// },
|
|
|
|
// "websocket": func(this *hotime.Context) {
|
|
|
|
// hdler := websocket.Handler(func(ws *websocket.Conn) {
|
|
|
|
// for true {
|
|
|
|
// msg := make([]byte, 5120)
|
|
|
|
// n, err := ws.Read(msg)
|
|
|
|
//
|
|
|
|
// if err != nil {
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// fmt.Printf("Receive: %s\n", msg[:n])
|
|
|
|
//
|
|
|
|
// send_msg := "[" + string(msg[:n]) + "]"
|
|
|
|
// m, err := ws.Write([]byte(send_msg))
|
|
|
|
// if err != nil {
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// fmt.Printf("Send: %s\n", msg[:m])
|
|
|
|
// }
|
|
|
|
// })
|
|
|
|
// hdler.ServeHTTP(this.Resp, this.Req)
|
|
|
|
// },
|
|
|
|
// },
|
|
|
|
// },
|
|
|
|
//})
|
2017-08-17 02:37:00 +00:00
|
|
|
}
|