Skip to content

Commit

Permalink
feat: reconsitution engine
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangliang committed Jan 24, 2022
1 parent c2170d8 commit 7bf7504
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 25 deletions.
6 changes: 3 additions & 3 deletions examples/hello/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (
"encoding/json"
"fmt"
"github.com/LilithGames/agent-go/pkg/agent"
"github.com/LilithGames/agent-go/tools/log"
"github.com/hasura/go-graphql-client"
"github.com/magicsea/behavior3go"
"github.com/magicsea/behavior3go/core"
"github.com/rs/xid"
"github.com/LilithGames/agent-go/tools/log"
"math/rand"
"time"
)
Expand Down Expand Up @@ -69,7 +69,7 @@ func HelloB(tick agent.Ticker) (behavior3go.Status, error) {

func HelloC(tick agent.Ticker) (behavior3go.Status, error) {
p := tick.Blackboard().GetMem("player").(*Player)
if tick.Marget().Index() % 2 == 0 {
if tick.Marget().Index()%2 == 0 {
m := tick.Marget().InviteOne()
if m != nil {
fmt.Println("invite player success: ", m.(*Player).id)
Expand Down Expand Up @@ -166,4 +166,4 @@ func NewPlayer(id string) *Player {

func (p *Player) ID() string {
return p.id
}
}
6 changes: 3 additions & 3 deletions pkg/agent/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,9 @@ func pushLocalData(report *transfer.Report) error {
func echoLocalData(planName string, view *ViewOpt) {
if os.Getenv("echo") != "ct" {
printQuantitySlice(planName+":H", quantities.Handler, view)
printQuantitySlice(planName+":E", quantities.Event, view)
printQuantitySlice(planName+":E", quantities.Event, view)
printErrorMessage(planName+":H", quantities.Handler, view)
printErrorMessage(planName+":E", quantities.Handler, view)
printErrorMessage(planName+":E", quantities.Event, view)
}
quantities = newQuantities()
}
}
28 changes: 18 additions & 10 deletions pkg/agent/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package agent
import (
"encoding/json"
"fmt"
"os"

"github.com/LilithGames/agent-go/pkg/transfer"
"github.com/LilithGames/agent-go/tools/log"
"github.com/ghodss/yaml"
Expand All @@ -15,8 +17,7 @@ import (
type Nodes map[string]core.NodeCreator

type Config struct {
Plans []*transfer.Plan
Environments map[string]string
Plans []*transfer.Plan
}

func (c *Config) MarshalBinary() (data []byte, err error) {
Expand Down Expand Up @@ -55,6 +56,16 @@ func NewBehavior() *Behavior {
}
}

func (b *Behavior) InitLocalEnvs(envs map[string]string) error {
for k, v := range envs {
err := os.Setenv(k, v)
if err != nil {
return err
}
}
return nil
}

func (b *Behavior) RegisterHandler(name string, handler Handler) {
creator := func() core.IBaseNode {
return &Action{handler: handler}
Expand Down Expand Up @@ -99,8 +110,7 @@ func (b *Behavior) BuildEngineFromConfig(conf []byte) *Engine {
if err != nil {
log.Panic("unmarshal plan config", zap.Error(err))
}
engine := &Engine{Behavior: b}
engine.envs = cfg.Environments
engine := &Engine{behavior: b}
for _, plan := range cfg.Plans {
if _, ok := b.trees[plan.TreeName]; !ok {
log.Panic("plan name not found: " + plan.TreeName)
Expand All @@ -111,9 +121,8 @@ func (b *Behavior) BuildEngineFromConfig(conf []byte) *Engine {
return engine
}

func (b *Behavior) BuildTestEngine(envs map[string]string, plan *transfer.Plan) *Engine {
engine := &Engine{Behavior: b}
engine.envs = envs
func (b *Behavior) BuildEngineFromPlan(plan *transfer.Plan) *Engine {
engine := &Engine{behavior: b}
engine.plans = append(engine.plans, plan)
b.registerSubTreeLoadFunc()
return engine
Expand All @@ -130,7 +139,6 @@ func (b *Behavior) registerSubTreeLoadFunc() {
}

type Engine struct {
*Behavior
plans []*transfer.Plan
envs map[string]string
behavior *Behavior
plans []*transfer.Plan
}
5 changes: 2 additions & 3 deletions pkg/agent/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ func (m *manager) startAgentEngine(content []byte, circle bool) error {
}

func (m *manager) startLocalService() {
m.setEnv(m.engine.envs)
var circle bool
if os.Getenv("mode") == "circle" {
circle = true
Expand Down Expand Up @@ -132,11 +131,11 @@ func (m *manager) buildExecutors() ([]*executor, *Market) {
executors := make([]*executor, len(m.engine.plans))
var mc int32
for index, plan := range m.engine.plans {
treeCfg := m.engine.trees[plan.TreeName]
treeCfg := m.engine.behavior.trees[plan.TreeName]
executor := &executor{
plan: plan,
treeCreator: func() *core.BehaviorTree {
return loader.CreateBevTreeFromConfig(&treeCfg, m.engine.registerMap)
return loader.CreateBevTreeFromConfig(&treeCfg, m.engine.behavior.registerMap)
},
}
executors[index] = executor
Expand Down
6 changes: 3 additions & 3 deletions pkg/agent/tick.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,17 +85,17 @@ func (h *Market) InviteLikeOne(like func(One) bool) One {
return nil
}

func(h *Market) InviteAcc() One {
func (h *Market) InviteAcc() One {
select {
case one := <- h.acc:
case one := <-h.acc:
h.UseAcc(one)
return one
case <-time.After(time.Millisecond * 10):
return nil
}
}

func(h *Market) InviteOne() One {
func (h *Market) InviteOne() One {
return h.InviteLikeOne(nil)
}

Expand Down
2 changes: 1 addition & 1 deletion tools/log/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
var zapLogger *zap.Logger

func init() {
zapLogger = zap.New(getCore("fatal"))
zapLogger = zap.New(getCore("warn"))
}

func ResetLogLevel(level string) {
Expand Down
4 changes: 2 additions & 2 deletions tools/metric/metric.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ func MetricsExport() *prometheus.Exporter {
aggregation.CumulativeTemporalitySelector(),
processor.WithMemory(true),
),
controller.WithCollectPeriod(time.Second),
controller.WithCollectPeriod(time.Second * 5),
)
if err := runtime.Start(runtime.WithMinimumReadMemStatsInterval(time.Second)); err != nil {
if err := runtime.Start(runtime.WithMinimumReadMemStatsInterval(time.Second * 5)); err != nil {
log.Panic("create runtime metric error", err)
}
exporter, err := prometheus.New(config, c)
Expand Down

0 comments on commit 7bf7504

Please sign in to comment.