説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

heath.go 775B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package functions
  2. import (
  3. "time"
  4. "github.com/gin-gonic/gin"
  5. "git.x2erp.com/qdy/go-base/types"
  6. "git.x2erp.com/qdy/go-db/factory/database"
  7. )
  8. // HealthHandler 返回一个处理函数
  9. func HealthHandler(dbFactory *database.DBFactory, dbType string) gin.HandlerFunc {
  10. return func(c *gin.Context) {
  11. err := dbFactory.TestConnection(dbType)
  12. success := err == nil
  13. status := "DOWN"
  14. if success {
  15. status = "UP"
  16. }
  17. c.JSON(200, &types.QueryResult{
  18. Success: success,
  19. Data: map[string]interface{}{
  20. "status": status,
  21. "time": time.Now().Format(time.RFC3339),
  22. "database": dbType,
  23. "databaseStatus": status,
  24. },
  25. Error: func() string {
  26. if err != nil {
  27. return err.Error()
  28. }
  29. return ""
  30. }(),
  31. })
  32. }
  33. }