mirror of
https://github.com/saveweb/solar_tracker.git
synced 2024-09-18 18:55:29 -07:00
feat: ping_mongodb
This commit is contained in:
parent
d45498466f
commit
0c0d7f1e0a
9
main.go
9
main.go
@ -33,12 +33,6 @@ func connect_to_mongodb() {
|
||||
fmt.Println("Connected to MongoDB!")
|
||||
}
|
||||
|
||||
func ping(c *gin.Context) {
|
||||
c.JSON(200, gin.H{
|
||||
"message": "pong",
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
connect_to_mongodb()
|
||||
}
|
||||
@ -48,6 +42,9 @@ func main() {
|
||||
r.GET("/ping", ping)
|
||||
r.HEAD("/ping", ping)
|
||||
|
||||
r.GET("/ping_mongodb", ping_mongodb)
|
||||
r.HEAD("/ping_mongodb", ping_mongodb)
|
||||
|
||||
v1_tracker := r.Group("/v1")
|
||||
{
|
||||
v1_tracker.POST("/projects", v1_projects)
|
||||
|
69
ping.go
Normal file
69
ping.go
Normal file
@ -0,0 +1,69 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.mongodb.org/mongo-driver/mongo/readpref"
|
||||
)
|
||||
|
||||
func ping(c *gin.Context) {
|
||||
c.JSON(200, gin.H{
|
||||
"message": "pong",
|
||||
})
|
||||
}
|
||||
|
||||
func ping_mongodb_primary() (time.Duration, error) {
|
||||
PrimaryStartTime := time.Now()
|
||||
// ping primary
|
||||
PrimaryErr := mongoClient.Ping(context.Background(), readpref.Primary())
|
||||
PrimaryEalapsedTime := time.Since(PrimaryStartTime)
|
||||
|
||||
return PrimaryEalapsedTime, PrimaryErr
|
||||
}
|
||||
|
||||
func ping_mongodb_nearest() (time.Duration, error) {
|
||||
NearestStartTime := time.Now()
|
||||
// ping nearest
|
||||
NearestErr := mongoClient.Ping(context.Background(), readpref.Nearest())
|
||||
NearestEalapsedTime := time.Since(NearestStartTime)
|
||||
|
||||
return NearestEalapsedTime, NearestErr
|
||||
}
|
||||
func ping_mongodb(c *gin.Context) {
|
||||
primaryChan := make(chan time.Duration)
|
||||
nearestChan := make(chan time.Duration)
|
||||
errChan := make(chan error)
|
||||
|
||||
go func() {
|
||||
PrimaryEalapsedTime, PrimaryErr := ping_mongodb_primary()
|
||||
primaryChan <- PrimaryEalapsedTime
|
||||
errChan <- PrimaryErr
|
||||
}()
|
||||
|
||||
go func() {
|
||||
NearestEalapsedTime, NearestErr := ping_mongodb_nearest()
|
||||
nearestChan <- NearestEalapsedTime
|
||||
errChan <- NearestErr
|
||||
}()
|
||||
|
||||
PrimaryEalapsedTime := <-primaryChan
|
||||
NearestEalapsedTime := <-nearestChan
|
||||
PrimaryErr := <-errChan
|
||||
NearestErr := <-errChan
|
||||
|
||||
if PrimaryErr != nil || NearestErr != nil {
|
||||
c.JSON(500, gin.H{
|
||||
"message": "MongoDB is down?",
|
||||
"PrimaryEalapsedTime": PrimaryEalapsedTime.Milliseconds(),
|
||||
"NearestEalapsedTime": NearestEalapsedTime.Milliseconds(),
|
||||
})
|
||||
} else {
|
||||
c.JSON(200, gin.H{
|
||||
"message": "MongoDB is up",
|
||||
"PrimaryEalapsedTime": PrimaryEalapsedTime.Milliseconds(),
|
||||
"NearestEalapsedTime": NearestEalapsedTime.Milliseconds(),
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user