xapp

package module
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2021 License: MIT Imports: 8 Imported by: 0

README

Component

    xcfg              这里主要是借鉴douyu框架得config解析
    xgoven            系统监控api
    xinvoker        
        -email        email
        -gorm         gorm
        -mongo        mongo
        -oss          云对象存储
        -redis        redis
    xlog              日志
    xmoniter          普罗米修斯
    xregistry         服务注册发现
    xtrace            链路追踪
    xgrpc             grpc 拦截器
    pkg
        -xcast        spf13/cast不足的函数封装
        -xcolor       颜色输出
        -xdefer       统一defer函数
        -xerrgroup    errgroup
        -xfile        文件操作封装
        -xflag        flag封装
        -xgp          协程池子
        -xmap         map操作封装
        -xnet         本机网络操作封装
        -xreminder    定时任务
        -xsignals     信号     
        -xtransform   数组转换封装   
        -xvalidator   验证

方便开发,自用

很多东西都是来自开源的项目。

Example

配置文件

[db]
[db.dev]
password = "root"
dbName = "ndisk"

[redis]
[redis.dev]

使用

/**
 * @Author: yangon
 * @Description
 * @Date: 2020/12/23 15:13
 **/
package main

import (
	"context"
	"fmt"
	"github.com/BurntSushi/toml"
	"github.com/coder2m/g-saber/xflag"
	"github.com/coder2m/component/xcfg"
	"github.com/coder2m/component/xcfg/datasource/manager"
	"github.com/coder2m/component/xinvoker"
	xgorm "github.com/coder2m/component/xinvoker/gorm"
	xredis "github.com/coder2m/component/xinvoker/redis"
)

func main() {
	xflag.Register(
		xflag.CommandNode{
			Name: "run",
			Command: &xflag.Command{
				Use:   "run ",
				Short: "run your app",
				Run: func(cmd *xflag.Command, args []string) {
					RunApp()
				},
			},
			Flags: func(c *xflag.Command) {
				c.Flags().StringP("config", "c", "", "配置文件")
				_ = c.MarkFlagRequired("config")
			},
		},
	)

	_ = xflag.Parse()

}

func RunApp() {
	data, err := manager.NewDataSource(xflag.NString("run", "config"))
	if err != nil {
		panic(err)
	}
	err = xcfg.LoadFromDataSource(data, toml.Unmarshal)
	if err != nil {
		panic(err)
	}

	xinvoker.Register(
		xgorm.Register("db"),
		xredis.Register("redis"))
	_ = xinvoker.Init()

	db := xgorm.Invoker("dev")
	rc := xredis.Invoker("dev")
	d, _ := db.DB()
	fmt.Println(d.Ping(), rc.Ping(context.Background()))
}


run

 go run main.go run -c=test.toml

Documentation

Overview

*

  • @Author: yangon
  • @Description
  • @Date: 2020/12/25 18:20 *

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppVersion

func AppVersion() string

AppVersion get buildAppVersion

func BuildHost

func BuildHost() string

BuildHost get buildHost

func Debug

func Debug() bool

Debug gets application debug.

func GoVersion

func GoVersion() string

GoVersion get go version

func HostName

func HostName() string

HostName get host name

func Name

func Name() string

Name gets application name.

func PrintVersion

func PrintVersion()

func StartTime

func StartTime() string

StartTime get start time

Types

This section is empty.

Directories

Path Synopsis
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:56 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:55
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:56 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:55
* * @Author: yangon * @Description * @Date: 2020/12/25 17:35 * * * @Author: yangon * @Description * @Date: 2020/12/25 17:33 *
* * @Author: yangon * @Description * @Date: 2020/12/25 17:35 * * * @Author: yangon * @Description * @Date: 2020/12/25 17:33 *
client
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
server
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
* * @Author: yangon * @Description * @Date: 2020/12/23 13:18 *
* * @Author: yangon * @Description * @Date: 2020/12/23 13:18 *
email
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/5 0:20 * * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/5 0:20 * * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
gorm
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
mongo
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: yangon * @Description * @Date: 2020/12/23 17:09 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: yangon * @Description * @Date: 2020/12/23 17:09 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
oss
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2020/12/23 16:26 *
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2020/12/23 16:26 *
oss/alioss
* * @Author: yangon * @Description * @Date: 2020/12/23 16:34 *
* * @Author: yangon * @Description * @Date: 2020/12/23 16:34 *
oss/file
* * @Author: yangon * @Description * @Date: 2020/12/23 16:30 *
* * @Author: yangon * @Description * @Date: 2020/12/23 16:30 *
oss/standard
* * @Author: yangon * @Description * @Date: 2020/12/23 16:25 *
* * @Author: yangon * @Description * @Date: 2020/12/23 16:25 *
redis
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
sms
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2021/1/6 18:05 *
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2021/1/6 18:05 *
* * @Author: yangon * @Description * @Date: 2020/12/25 16:29 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:48 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:45 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:34 *
* * @Author: yangon * @Description * @Date: 2020/12/25 16:29 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:48 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:45 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:34 *
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:04
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:04
xdirect
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44
xetcd
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:20 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:34 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:21
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:20 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:34 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:21
xk8s
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:08 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:12
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:08 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:12
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:42 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:44
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:42 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:44
jaeger
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 14:49
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 14:49

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL