job refreshing

master
李伟乐 11 months ago
parent ee3004130e
commit ff91b9782b
  1. 12
      example/main.go
  2. 45
      selector/random/random.go
  3. 55
      selector/selector_test.go
  4. 22
      tools/model/cmd.go
  5. 1
      tools/model/sql/command/command.go
  6. 11
      tools/model/sql/gen/d/main.go
  7. 52
      tools/model/sql/gen/gen.go
  8. 71
      tools/model/sql/gen/parser/parser.go

@ -7,6 +7,7 @@ import (
"git.diulo.com/mogfee/kit" "git.diulo.com/mogfee/kit"
"git.diulo.com/mogfee/kit/middleware" "git.diulo.com/mogfee/kit/middleware"
"git.diulo.com/mogfee/kit/transport/http" "git.diulo.com/mogfee/kit/transport/http"
"github.com/gin-gonic/gin"
) )
func main() { func main() {
@ -18,20 +19,17 @@ func runApp(host string) {
http.Address(host), http.Address(host),
http.Middleware(func(handler middleware.Handler) middleware.Handler { http.Middleware(func(handler middleware.Handler) middleware.Handler {
return func(ctx context.Context, a any) (any, error) { return func(ctx context.Context, a any) (any, error) {
fmt.Println("middleare 1") fmt.Println("middleware")
return handler(ctx, a) return handler(ctx, a)
} }
}), }),
) )
hs.Use("/api/v2/user/me", func(handler middleware.Handler) middleware.Handler {
return func(ctx context.Context, a any) (any, error) {
fmt.Println("use midd")
return handler(ctx, a)
}
})
r := hs.Route("") r := hs.Route("")
r.GET("/api/v2/user/me", func(ctx http.Context) error { r.GET("/api/v2/user/me", func(ctx http.Context) error {
fmt.Println("/api/v2/user/me") fmt.Println("/api/v2/user/me")
ctx.JSON(200, gin.H{
"asdasd": "asdasd",
})
return nil return nil
}) })
app := kit.New(kit.Server(hs)) app := kit.New(kit.Server(hs))

@ -1,45 +0,0 @@
package random
import (
"context"
"git.diulo.com/mogfee/kit/selector"
"math/rand"
)
type Option func(o *options)
type options struct {
}
type Balancer struct {
}
func New(opts ...Option) selector.Selector {
return NewBuilder(opts...).Build()
}
func (b *Balancer) Pick(ctx context.Context, nodes []selector.WeightedNode) (selector.WeightedNode, selector.DoneFunc, error) {
if len(nodes) == 0 {
return nil, nil, selector.ErrNoAvailable
}
cut := rand.Intn(len(nodes))
selected := nodes[cut]
d := selected.Pick()
return selected, d, nil
}
func NewBuilder(opts ...Option) selector.Builder {
var option options
for _, opt := range opts {
opt(&option)
}
return &selector.DefaultBuilder{
Balancer: &Builder{},
Node: &direct.Builder{},
}
}
// Builder is random builder
type Builder struct{}
func (b *Builder) Builder() selector.Balancer {
return &Balancer{}
}

@ -1,55 +0,0 @@
package selector_test
import (
"context"
"git.diulo.com/mogfee/kit/registry"
"git.diulo.com/mogfee/kit/selector"
"git.diulo.com/mogfee/kit/selector/filter"
"git.diulo.com/mogfee/kit/selector/random"
"gopkg.in/go-playground/assert.v1"
"testing"
)
func TestSelect(t *testing.T) {
t.Run("没有可用服务", func(t *testing.T) {
s := random.New()
_, _, err := s.Select(context.Background())
assert.Equal(t, err, selector.ErrNoAvailable)
})
t.Run("正常访问", func(t *testing.T) {
s := random.New()
s.Apply(nodes)
selected, _, err := s.Select(context.Background())
assert.Equal(t, err, nil)
assert.Equal(t, selected.Address(), nodes[0].Address())
selected, _, err = s.Select(context.Background())
assert.Equal(t, err, nil)
assert.Equal(t, selected.Address(), nodes[1].Address())
})
t.Run("获取v2版本", func(t *testing.T) {
s := random.New()
s.Apply(nodes)
selected, _, err := s.Select(context.Background(), selector.WithNodeFilter(filter.Version("v2.0.0")))
assert.Equal(t, err, nil)
assert.Equal(t, selected.Address(), nodes[1].Address())
})
}
var nodes = []selector.Node{
selector.NewNode("http", "127.0.0.1:8080", &registry.ServiceInstance{
ID: "127.0.0.1:8080",
Name: "hello",
Version: "v1.0.0",
Metadata: map[string]string{"weight": "10"},
Endpoints: []string{"127.0.0.1:8080"},
}),
selector.NewNode("http", "127.0.0.1:9090", &registry.ServiceInstance{
ID: "127.0.0.1:9090",
Name: "hello",
Version: "v2.0.0",
Metadata: map[string]string{"weight": "10"},
Endpoints: []string{"127.0.0.1:9090"},
}),
}

@ -1,22 +0,0 @@
package main
import (
"fmt"
"github.com/spf13/cobra"
)
func main() {
Cmd := &cobra.Command{
Use: "model",
}
mysqlCmd := &cobra.Command{
Use: "mysql",
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println("aaa")
return nil
},
}
Cmd.AddCommand(mysqlCmd)
Cmd.Execute()
}

@ -1,11 +0,0 @@
package main
import "git.diulo.com/mogfee/kit/tools/model/sql/gen"
func main() {
filenmae := "/Users/mogfee/web/sendmail_server_new/sendmail.sch.sql"
err := gen.NewGenerator().StartFromDDL(filenmae, false, true, "sendmail")
if err != nil {
panic(err)
}
}

@ -1,52 +0,0 @@
package gen
import "git.diulo.com/mogfee/kit/mysql/ddl"
type (
defaultGenerator struct {
dir string
pkg string
ignoreColumns []string
}
code struct {
importsCode string
varsCode string
typesCode string
newCode string
insertCode string
findCode string
updateCode string
deleteCode string
cacheExtra string
tableName string
}
codeTuple struct {
modelCode string
modelCustomCode string
}
)
func NewGenerator() *defaultGenerator {
return &defaultGenerator{}
}
func (g *defaultGenerator) StartFromDDL(filename string, withCache, strict bool, database string) error {
modelList, err := g.genFromDDL(filename, withCache, strict, database)
if err != nil {
return err
}
return g.createFile(modelList)
}
func (g *defaultGenerator) genFromDDL(filename string, cache bool, strict bool, database string) (
map[string]*codeTuple, error) {
m := make(map[string]*codeTuple)
err := ddl.Parser(filename, func(table *ddl.Table) error {
code, err := g.genModel(e, cache)
if err != nil {
return err
}
})
return m, err
}

@ -1,71 +0,0 @@
package parser
import (
"git.diulo.com/mogfee/kit/mysql/ddl"
)
const timeImport = "time.Time"
type (
Table struct {
Name string
Db string
PrimaryKey Primary
UniqueIndex map[string][]*Field
Fields []*Field
}
Primary struct {
Field
AutoIncrement bool
}
Field struct {
NameOriginal string
Name string
DateType string
Comment string
SeqInIndex int
OrdinalPosition int
ContainsPQ bool
}
KeyType int
)
func parseNameOriginal(ts []*ddl.Table) (nameOriginals [][]string) {
var columns []string
for _, t := range ts {
columns = []string{}
for _, c := range t.Columns {
columns = append(columns, c.Name)
}
nameOriginals = append(nameOriginals, columns)
}
return nameOriginals
}
func Parse(filename, database string, strict bool) ([]*Table, error) {
list := make([]*Table, 0)
err := ddl.Parser(filename, func(table *ddl.Table) error {
list = append(list, &Table{
Name: table.Name,
Db: "",
PrimaryKey: Primary{
Field: Field{
NameOriginal: "",
Name: "",
DateType: "",
Comment: "",
SeqInIndex: 0,
OrdinalPosition: 0,
ContainsPQ: false,
},
AutoIncrement: false,
},
UniqueIndex: nil,
Fields: nil,
})
return nil
})
return list, err
}
Loading…
Cancel
Save