mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
updates
This commit is contained in:
parent
f48c3bd323
commit
77c038d44d
@ -85,7 +85,7 @@ func main() {
|
|||||||
http.HandleFunc("/", HandleGetVideos)
|
http.HandleFunc("/", HandleGetVideos)
|
||||||
http.HandleFunc("/update", HandleUpdateVideos)
|
http.HandleFunc("/update", HandleUpdateVideos)
|
||||||
|
|
||||||
http.ListenAndServe(":8080", nil)
|
http.ListenAndServe(":80", nil)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ If we look at our sentinel configuration, our master alias is set to `mymaster`
|
|||||||
```
|
```
|
||||||
docker run -it -p 80:80 `
|
docker run -it -p 80:80 `
|
||||||
--net redis `
|
--net redis `
|
||||||
-e REDIS_SENTINELS="sentinel-1:5000,sentinel-2:5000,sentinel-3:5000" `
|
-e REDIS_SENTINELS="sentinel-0:5000,sentinel-1:5000,sentinel-2:5000" `
|
||||||
-e REDIS_MASTER_NAME="mymaster" `
|
-e REDIS_MASTER_NAME="mymaster" `
|
||||||
-e REDIS_PASSWORD="a-very-complex-password-here" `
|
-e REDIS_PASSWORD="a-very-complex-password-here" `
|
||||||
-v ${PWD}:/work go sh
|
-v ${PWD}:/work go sh
|
||||||
@ -550,7 +550,7 @@ Run :
|
|||||||
```
|
```
|
||||||
docker run -it -p 80:80 `
|
docker run -it -p 80:80 `
|
||||||
--net redis `
|
--net redis `
|
||||||
-e REDIS_SENTINELS="sentinel-1:5000,sentinel-2:5000,sentinel-3:5000" `
|
-e REDIS_SENTINELS="sentinel-0:5000,sentinel-1:5000,sentinel-2:5000" `
|
||||||
-e REDIS_MASTER_NAME="mymaster" `
|
-e REDIS_MASTER_NAME="mymaster" `
|
||||||
-e REDIS_PASSWORD="a-very-complex-password-here" `
|
-e REDIS_PASSWORD="a-very-complex-password-here" `
|
||||||
videos
|
videos
|
||||||
|
@ -4,30 +4,33 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"github.com/go-redis/redis/v8"
|
|
||||||
"context"
|
|
||||||
"strings"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"context"
|
||||||
|
"strings"
|
||||||
|
"github.com/go-redis/redis/v8"
|
||||||
)
|
)
|
||||||
|
|
||||||
var redis_sentinels = os.Getenv("REDIS_SENTINELS")
|
|
||||||
var redis_master = os.Getenv("REDIS_MASTER_NAME")
|
|
||||||
var redis_password = os.Getenv("REDIS_PASSWORD")
|
|
||||||
var ctx = context.Background()
|
var ctx = context.Background()
|
||||||
var redisClient *redis.Client
|
var redisClient *redis.Client
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
|
var redis_sentinels = os.Getenv("REDIS_SENTINELS")
|
||||||
|
var redis_master = os.Getenv("REDIS_MASTER_NAME")
|
||||||
|
var redis_password = os.Getenv("REDIS_PASSWORD")
|
||||||
|
|
||||||
sentinelAddrs := strings.Split(redis_sentinels, ",")
|
sentinelAddrs := strings.Split(redis_sentinels, ",")
|
||||||
|
|
||||||
rdb := redis.NewFailoverClient(&redis.FailoverOptions{
|
rdb := redis.NewFailoverClient(&redis.FailoverOptions{
|
||||||
MasterName: redis_master,
|
MasterName: redis_master,
|
||||||
SentinelAddrs: sentinelAddrs,
|
SentinelAddrs: sentinelAddrs,
|
||||||
Password: redis_password,
|
Password: redis_password,
|
||||||
DB: 0,
|
DB: 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
redisClient = rdb
|
redisClient = rdb
|
||||||
|
|
||||||
rdb.Ping(ctx)
|
rdb.Ping(ctx)
|
||||||
|
|
||||||
http.HandleFunc("/", HandleGetVideos)
|
http.HandleFunc("/", HandleGetVideos)
|
||||||
@ -36,15 +39,13 @@ func main() {
|
|||||||
http.ListenAndServe(":80", nil)
|
http.ListenAndServe(":80", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func HandleGetVideos(w http.ResponseWriter, r *http.Request){
|
func HandleGetVideos(w http.ResponseWriter, r *http.Request){
|
||||||
|
|
||||||
id, ok := r.URL.Query()["id"]
|
id, ok := r.URL.Query()["id"]
|
||||||
|
|
||||||
if ok {
|
if ok {
|
||||||
|
videoID := id[0]
|
||||||
videoID := id[0]
|
video := getVideo(videoID)
|
||||||
video := getVideo(videoID)
|
|
||||||
|
|
||||||
if video.Id == "" { //video not found, or empty ID
|
if video.Id == "" { //video not found, or empty ID
|
||||||
w.WriteHeader(http.StatusNotFound)
|
w.WriteHeader(http.StatusNotFound)
|
||||||
@ -56,9 +57,8 @@ func HandleGetVideos(w http.ResponseWriter, r *http.Request){
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Write(videoBytes)
|
w.Write(videoBytes)
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,8 +82,8 @@ func HandleUpdateVideos(w http.ResponseWriter, r *http.Request){
|
|||||||
}
|
}
|
||||||
|
|
||||||
_, ok := r.URL.Query()["id"]
|
_, ok := r.URL.Query()["id"]
|
||||||
if ok {
|
|
||||||
|
|
||||||
|
if ok {
|
||||||
var video video
|
var video video
|
||||||
err = json.Unmarshal(body, &video)
|
err = json.Unmarshal(body, &video)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -111,4 +111,3 @@ func HandleUpdateVideos(w http.ResponseWriter, r *http.Request){
|
|||||||
fmt.Fprintf(w, "Method not Supported!")
|
fmt.Fprintf(w, "Method not Supported!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@ func getVideos()(videos []video){
|
|||||||
video := getVideo(key)
|
video := getVideo(key)
|
||||||
videos = append(videos, video)
|
videos = append(videos, video)
|
||||||
}
|
}
|
||||||
|
|
||||||
return videos
|
return videos
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,25 +32,17 @@ func getVideo(id string)(video video) {
|
|||||||
|
|
||||||
value, err := redisClient.Get(ctx, id).Result()
|
value, err := redisClient.Get(ctx, id).Result()
|
||||||
|
|
||||||
if err == redis.Nil {
|
|
||||||
return video
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
json.Unmarshal([]byte(value), &video)
|
if err != redis.Nil {
|
||||||
|
err = json.Unmarshal([]byte(value), &video)
|
||||||
|
}
|
||||||
|
|
||||||
return video
|
return video
|
||||||
}
|
}
|
||||||
|
|
||||||
func saveVideos(videos []video)(){
|
|
||||||
for _, video := range videos {
|
|
||||||
saveVideo(video)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func saveVideo(video video)(){
|
func saveVideo(video video)(){
|
||||||
|
|
||||||
videoBytes, err := json.Marshal(video)
|
videoBytes, err := json.Marshal(video)
|
||||||
@ -60,7 +51,14 @@ func saveVideo(video video)(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = redisClient.Set(ctx, video.Id, videoBytes, 0).Err()
|
err = redisClient.Set(ctx, video.Id, videoBytes, 0).Err()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func saveVideos(videos []video)(){
|
||||||
|
for _, video := range videos {
|
||||||
|
saveVideo(video)
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user