Beispiel #1
0
func main() {
	Server := new(server.Server)
	myDb := new(db.Env)

	if len(os.Args) != 5 {
		fmt.Println("./Usage 'name bdd' 'pass bdd' 'user bdd' 'port bdd'")
		return
	}
	er := Server.InitServer()
	if er != nil {
		fmt.Println("Error on InitServer: ", er)
		return
	}
	Db, er := myDb.OpenCo(os.Args)
	if er != nil {
		Server.Logger.Println("OpenCo error: ", er)
		return
	}
	er = Server.Init_Data(myDb)
	if er != nil {
		Server.Logger.Println("Init_Data error: ", er)
		return
	}
	go ManageSignal(Server, myDb)
	go Manage_goroutines(Server, myDb)
	go sock.Listen(Server, Db)

	for {
		time.Sleep(time.Second * 60)
	}
}
Beispiel #2
0
func ManageSignal(Serv *server.Server, myDb *db.Env) {
	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt, os.Kill)
	s := <-c
	Serv.Logger.Println("try save data_cach on bdd following Get Signal: ", s)

	er := Serv.Lst_ball.Update_balls(Serv.Lst_ball, myDb)
	if er != nil {
		Serv.Logger.Println("Update_balls error: ", er)
	}
	er = Serv.Lst_users.Update_users(myDb)
	if er != nil {
		Serv.Logger.Println("Update_users error: ", er)
	}
	er = myDb.Db.Close()
	if er != nil {
		Serv.Logger.Println("Erreur on closing bdd: ", er)
	}
	Serv.Tab_wd.Logger = nil
	Serv.Lst_users.Logger = nil
	Serv.Lst_ball.Logger = nil
	Serv.Lst_Devices.Logger = nil
	Serv.Logger = nil
	fmt.Println()
	os.Exit(-1)
}