mirror of
https://github.com/elyby/chrly.git
synced 2024-11-30 10:42:14 +05:30
Реализована страница 404 ошибки
Реализовано переподключение к Redis в случае, если соединение упадёт
This commit is contained in:
parent
283f4e0e3f
commit
c2d0cb93cb
@ -31,6 +31,8 @@ func FindRecord(username string) (SkinItem, error) {
|
|||||||
if (decodeErr != nil) {
|
if (decodeErr != nil) {
|
||||||
log.Println("Cannot decode record data")
|
log.Println("Cannot decode record data")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.Println("Error on request user data")
|
||||||
}
|
}
|
||||||
|
|
||||||
return record, err
|
return record, err
|
||||||
|
@ -9,7 +9,7 @@ func NotFound(w http.ResponseWriter, r *http.Request) {
|
|||||||
json, _ := json.Marshal(map[string]string{
|
json, _ := json.Marshal(map[string]string{
|
||||||
"status": "404",
|
"status": "404",
|
||||||
"message": "Not Found",
|
"message": "Not Found",
|
||||||
"link": "http://docs.ely.by",
|
"link": "http://docs.ely.by/skin-system.html",
|
||||||
})
|
})
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"time"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
@ -12,16 +13,17 @@ import (
|
|||||||
"elyby/minecraft-skinsystem/lib/services"
|
"elyby/minecraft-skinsystem/lib/services"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const redisString string = "redis:6379"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||||
|
|
||||||
client, redisErr := redis.Dial("tcp", "redis:6379")
|
client, redisErr := redis.Dial("tcp", redisString)
|
||||||
if redisErr != nil {
|
if redisErr != nil {
|
||||||
log.Fatal("Redis unavailable")
|
log.Fatal("Redis unavailable")
|
||||||
}
|
}
|
||||||
|
|
||||||
router := mux.NewRouter().StrictSlash(true)
|
router := mux.NewRouter().StrictSlash(true)
|
||||||
router.HandleFunc("/", routes.NotFound)
|
|
||||||
router.HandleFunc("/skins/{username}", routes.Skin).Methods("GET").Name("skins")
|
router.HandleFunc("/skins/{username}", routes.Skin).Methods("GET").Name("skins")
|
||||||
router.HandleFunc("/cloaks/{username}", routes.Cape).Methods("GET").Name("cloaks")
|
router.HandleFunc("/cloaks/{username}", routes.Cape).Methods("GET").Name("cloaks")
|
||||||
router.HandleFunc("/textures/{username}", routes.Textures).Methods("GET").Name("textures")
|
router.HandleFunc("/textures/{username}", routes.Textures).Methods("GET").Name("textures")
|
||||||
@ -29,6 +31,8 @@ func main() {
|
|||||||
router.HandleFunc("/minecraft.php", routes.MinecraftPHP).Methods("GET")
|
router.HandleFunc("/minecraft.php", routes.MinecraftPHP).Methods("GET")
|
||||||
router.HandleFunc("/skins/", routes.SkinGET).Methods("GET")
|
router.HandleFunc("/skins/", routes.SkinGET).Methods("GET")
|
||||||
router.HandleFunc("/cloaks/", routes.CapeGET).Methods("GET")
|
router.HandleFunc("/cloaks/", routes.CapeGET).Methods("GET")
|
||||||
|
// 404
|
||||||
|
router.NotFoundHandler = http.HandlerFunc(routes.NotFound)
|
||||||
|
|
||||||
// TODO: убрать этого, т.к. он стар
|
// TODO: убрать этого, т.к. он стар
|
||||||
router.HandleFunc("/system/setSkin", routes.SetSkin).Methods("POST")
|
router.HandleFunc("/system/setSkin", routes.SetSkin).Methods("POST")
|
||||||
@ -39,5 +43,24 @@ func main() {
|
|||||||
services.Redis = client
|
services.Redis = client
|
||||||
services.Router = router
|
services.Router = router
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
for {
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
|
resp := services.Redis.Cmd("PING")
|
||||||
|
if (resp.Err != nil) {
|
||||||
|
log.Println("Redis not pinged. Try to reconnect")
|
||||||
|
newClient, redisErr := redis.Dial("tcp", redisString)
|
||||||
|
if (redisErr != nil) {
|
||||||
|
log.Println("Cannot reconnect to redis")
|
||||||
|
} else {
|
||||||
|
services.Redis = newClient
|
||||||
|
log.Println("Reconnected")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
log.Println("Started");
|
||||||
log.Fatal(http.ListenAndServe(":80", router))
|
log.Fatal(http.ListenAndServe(":80", router))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user