mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 17:44:05 +08:00
opt gdb
This commit is contained in:
parent
550d08092f
commit
33170bd6a9
@ -15,10 +15,10 @@ const EVENT = "event"
|
|||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
EVENT: {Name: "event event id auto listen happen", Help: "事件流", Actions: ice.MergeActions(ice.Actions{
|
EVENT: {Name: "event event id auto listen happen", Help: "事件流", Actions: ice.MergeActions(ice.Actions{
|
||||||
LISTEN: {Name: "listen event cmd", Hand: func(m *ice.Message, arg ...string) {
|
LISTEN: {Name: "listen event cmd", Help: "监听", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.ZoneInsert(m, m.OptionSimple(EVENT, ice.CMD))
|
mdb.ZoneInsert(m, m.OptionSimple(EVENT, ice.CMD))
|
||||||
}},
|
}},
|
||||||
HAPPEN: {Name: "happen event arg", Hand: func(m *ice.Message, arg ...string) {
|
HAPPEN: {Name: "happen event", Help: "触发", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.ZoneSelect(m.Spawn(ice.OptionFields("")), m.Option(EVENT)).Tables(func(value ice.Maps) {
|
mdb.ZoneSelect(m.Spawn(ice.OptionFields("")), m.Option(EVENT)).Tables(func(value ice.Maps) {
|
||||||
m.Cmdy(kit.Split(value[ice.CMD]), m.Option(EVENT), arg[2:], ice.OptionFields("")).Cost()
|
m.Cmdy(kit.Split(value[ice.CMD]), m.Option(EVENT), arg[2:], ice.OptionFields("")).Cost()
|
||||||
})
|
})
|
||||||
|
@ -2,46 +2,27 @@ package gdb
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Frame struct {
|
type Frame struct{ s chan os.Signal }
|
||||||
s chan os.Signal
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server {
|
|
||||||
return &Frame{}
|
|
||||||
}
|
|
||||||
func (f *Frame) Begin(m *ice.Message, arg ...string) ice.Server {
|
func (f *Frame) Begin(m *ice.Message, arg ...string) ice.Server {
|
||||||
list := []string{}
|
|
||||||
for k := range ice.Info.File {
|
|
||||||
if strings.HasPrefix(k, ice.Info.Make.Path+ice.PS) {
|
|
||||||
list = append(list, k)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, k := range list {
|
|
||||||
ice.Info.File["/require/"+strings.TrimPrefix(k, ice.Info.Make.Path+ice.PS)] = ice.Info.File[k]
|
|
||||||
delete(ice.Info.File, k)
|
|
||||||
}
|
|
||||||
|
|
||||||
f.s = make(chan os.Signal, 3)
|
f.s = make(chan os.Signal, 3)
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
func (f *Frame) Start(m *ice.Message, arg ...string) bool {
|
func (f *Frame) Start(m *ice.Message, arg ...string) bool {
|
||||||
t := kit.Duration(m.Conf(TIMER, kit.Keym(TICK)))
|
t := kit.Duration(m.Conf(TIMER, kit.Keym(TICK)))
|
||||||
enable := m.Conf(TIMER, kit.Keym("enable")) == ice.TRUE
|
enable := m.Conf(TIMER, kit.Keym("enable")) == ice.TRUE
|
||||||
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-time.Tick(t):
|
case <-time.Tick(t):
|
||||||
if enable {
|
if enable {
|
||||||
m.Cmd(TIMER, HAPPEN)
|
m.Cmd(TIMER, HAPPEN)
|
||||||
}
|
}
|
||||||
|
|
||||||
case s, ok := <-f.s:
|
case s, ok := <-f.s:
|
||||||
if !ok {
|
if !ok {
|
||||||
return true
|
return true
|
||||||
@ -55,6 +36,9 @@ func (f *Frame) Close(m *ice.Message, arg ...string) bool {
|
|||||||
close(f.s)
|
close(f.s)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
func (f *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server {
|
||||||
|
return &Frame{}
|
||||||
|
}
|
||||||
|
|
||||||
const DEBUG = "debug"
|
const DEBUG = "debug"
|
||||||
const GDB = "gdb"
|
const GDB = "gdb"
|
||||||
@ -64,4 +48,4 @@ var Index = &ice.Context{Name: GDB, Help: "事件模块", Commands: ice.Commands
|
|||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) { ice.Info.Save(m, TIMER, ROUTINE) }},
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) { ice.Info.Save(m, TIMER, ROUTINE) }},
|
||||||
}}
|
}}
|
||||||
|
|
||||||
func init() { ice.Index.Register(Index, &Frame{}, SIGNAL, TIMER, EVENT, ROUTINE) }
|
func init() { ice.Index.Register(Index, &Frame{}, SIGNAL, EVENT, TIMER, ROUTINE) }
|
||||||
|
@ -12,7 +12,7 @@ const ROUTINE = "routine"
|
|||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
ROUTINE: {Name: "routine hash auto prunes", Help: "协程池", Actions: ice.MergeActions(ice.Actions{
|
ROUTINE: {Name: "routine hash auto prunes", Help: "协程池", Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.CREATE: {Name: "create name", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create name", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Go(func() {
|
m.Go(func() {
|
||||||
cb := m.OptionCB("")
|
cb := m.OptionCB("")
|
||||||
h := mdb.HashCreate(m, m.OptionSimple(mdb.NAME), mdb.STATUS, START, ice.CMD, logs.FileLines(cb))
|
h := mdb.HashCreate(m, m.OptionSimple(mdb.NAME), mdb.STATUS, START, ice.CMD, logs.FileLines(cb))
|
||||||
|
@ -8,12 +8,12 @@ import (
|
|||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
func _timer_action(m *ice.Message, now string, arg ...string) {
|
func _timer_action(m *ice.Message, now time.Time, arg ...string) {
|
||||||
mdb.HashSelects(m).Tables(func(value ice.Maps) {
|
mdb.HashSelects(m).Tables(func(value ice.Maps) {
|
||||||
if value[mdb.COUNT] == "0" {
|
if value[mdb.COUNT] == "0" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if value[mdb.TIME] > now {
|
if kit.Time(value[mdb.TIME]) > kit.Int64(now) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
m.Cmd(ROUTINE, mdb.CREATE, mdb.NAME, value[mdb.NAME], kit.Keycb(ROUTINE), value[ice.CMD])
|
m.Cmd(ROUTINE, mdb.CREATE, mdb.NAME, value[mdb.NAME], kit.Keycb(ROUTINE), value[ice.CMD])
|
||||||
@ -33,10 +33,10 @@ func init() {
|
|||||||
TIMER: {Name: "timer hash auto create prunes", Help: "定时器", Actions: ice.MergeActions(ice.Actions{
|
TIMER: {Name: "timer hash auto create prunes", Help: "定时器", Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.CREATE: {Name: "create name=hi delay=10ms interval=10s count=3 cmd=runtime"},
|
mdb.CREATE: {Name: "create name=hi delay=10ms interval=10s count=3 cmd=runtime"},
|
||||||
mdb.PRUNES: {Hand: func(m *ice.Message, arg ...string) { mdb.HashPrunesValue(m, mdb.COUNT, "0") }},
|
mdb.PRUNES: {Hand: func(m *ice.Message, arg ...string) { mdb.HashPrunesValue(m, mdb.COUNT, "0") }},
|
||||||
HAPPEN: {Hand: func(m *ice.Message, arg ...string) { _timer_action(m, time.Now().Format(ice.MOD_TIME), arg...) }},
|
HAPPEN: {Hand: func(m *ice.Message, arg ...string) { _timer_action(m, time.Now(), arg...) }},
|
||||||
RESTART: {Name: "restart count=3", Hand: func(m *ice.Message, arg ...string) {
|
RESTART: {Name: "restart count=3", Help: "重启", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.HashModify(m, m.OptionSimple(mdb.HashShort(m)), arg)
|
mdb.HashModify(m, m.OptionSimple(mdb.HashShort(m)), arg)
|
||||||
}},
|
}},
|
||||||
}, mdb.HashAction(mdb.FIELD, "time,hash,name,delay,interval,count,cmd", TICK, "10s"))},
|
}, mdb.HashAction(mdb.FIELD, "time,hash,name,delay,interval,count,cmd", TICK, "60s"))},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user