diff --git a/base/log/log.go b/base/log/log.go index 270b2bb5..1d49bd4f 100644 --- a/base/log/log.go +++ b/base/log/log.go @@ -61,7 +61,7 @@ func (f *Frame) Start(m *ice.Message, arg ...string) { view := mdb.Confm(m, VIEW, m.Conf(SHOW, kit.Keys(l.l, VIEW))) kit.If(ice.Info.Colors || l.c, func() { bio.WriteString(kit.Format(view[PREFIX])) }) defer kit.If(ice.Info.Colors || l.c, func() { bio.WriteString(kit.Format(view[SUFFIX])) }) - fmt.Fprint(bio, l.l, lex.SP, l.s) + fmt.Fprint(bio, l.l, lex.SP, l.s+kit.Format("what %v", len(f.p))) }) } } diff --git a/base/mdb/lock.go b/base/mdb/lock.go index 25ed1f6c..631294dd 100644 --- a/base/mdb/lock.go +++ b/base/mdb/lock.go @@ -1,6 +1,7 @@ package mdb import ( + "time" "sync" ice "shylinux.com/x/icebergs" @@ -18,8 +19,44 @@ func getLock(m *ice.Message, arg ...string) *task.Lock { kit.If(!ok, func() { l = &task.Lock{}; _locks[key] = l }) return l } -func Lock(m *ice.Message, arg ...string) func() { return getLock(m, arg...).Lock() } -func RLock(m *ice.Message, arg ...string) func() { return getLock(m, arg...).RLock() } +func Lock(m *ice.Message, arg ...string) func() { + return getLock(m, arg...).Lock() + key := kit.Select(m.PrefixKey(), kit.Keys(arg)) + m.Info("what %v", key) + cb := getLock(m, arg...).Lock() + m.Info("what %v", key) + go func() { + time.Sleep(30*time.Second) + if cb == nil { + return + } + cb() + m.Warn("lock time out %v %v", key, m.FormatStack(1, 100)) + }() + return func() { + cb() + cb = nil + } +} +func RLock(m *ice.Message, arg ...string) func() { + return getLock(m, arg...).RLock() + key := kit.Select(m.PrefixKey(), kit.Keys(arg)) + m.Info("what %v", key) + cb := getLock(m, arg...).RLock() + m.Info("what %v", key) + go func() { + time.Sleep(30*time.Second) + if cb == nil { + return + } + cb() + m.Warn("lock time out %v %v", key, m.FormatStack(1, 100)) + }() + return func() { + cb() + cb = nil + } +} func ConfigSimple(m *ice.Message, key ...string) (res []string) { for _, key := range key { diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 8d650e40..62255e2e 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -226,26 +226,22 @@ var Index = &ice.Context{Name: MDB, Help: "数据模块", Commands: ice.Commands EXPORT: {Name: "export index auto", Help: "导出数据", Actions: ice.MergeActions(ice.Actions{ IMPORT: {Hand: func(m *ice.Message, arg ...string) { HashSelect(m).Table(func(value ice.Maps) { - if value[STATUS] != DISABLE { + if value[ENABLE] != ice.FALSE { m.Cmd(IMPORT, value[INDEX], "", value[TYPE]) } }) }}, EXPORT: {Hand: func(m *ice.Message, arg ...string) { HashSelect(m).Table(func(value ice.Maps) { - if value[STATUS] != DISABLE { + if value[ENABLE] != ice.FALSE { m.Cmd(EXPORT, value[INDEX], "", value[TYPE]) } }) }}, - ENABLE: {Hand: func(m *ice.Message, arg ...string) { HashModify(m, STATUS, ENABLE) }}, - DISABLE: {Hand: func(m *ice.Message, arg ...string) { HashModify(m, STATUS, DISABLE) }}, - }, ExportHashAction(SHORT, INDEX, FIELD, "time,index,type,status")), Hand: func(m *ice.Message, arg ...string) { + }, ExportHashAction(SHORT, INDEX, FIELD, "time,index,type,enable")), Hand: func(m *ice.Message, arg ...string) { if len(arg) < 2 { - HashSelect(m, arg...).RewriteAppend(func(value, key string, index int) string { - kit.If(key == STATUS, func() { value = kit.Select(ENABLE, value) }) - return value - }).PushAction() + HashSelect(m, arg...) + m.PushAction(REMOVE) if len(arg) == 1 { m.Cmdy("nfs.cat", "usr/local/export/"+arg[0]+"/hash.json") } diff --git a/base/web/render.go b/base/web/render.go index 4e2a7029..bd0d3855 100644 --- a/base/web/render.go +++ b/base/web/render.go @@ -205,36 +205,39 @@ const ( UPGRADE = "upgrade" INSTALL = "install" - CODE_GIT_SERVICE = "web.code.git.service" - CODE_GIT_SEARCH = "web.code.git.search" - CODE_GIT_STATUS = "web.code.git.status" - CODE_GIT_REPOS = "web.code.git.repos" - CODE_AUTOGEN = "web.code.autogen" - CODE_COMPILE = "web.code.compile" - CODE_PUBLISH = "web.code.publish" - CODE_UPGRADE = "web.code.upgrade" - CODE_VIMER = "web.code.vimer" - CODE_INNER = "web.code.inner" - CODE_XTERM = "web.code.xterm" - CODE_MOD = "web.code.mod" - WIKI_FEEL = "web.wiki.feel" - WIKI_DRAW = "web.wiki.draw" - WIKI_WORD = "web.wiki.word" - WIKI_PORTAL = "web.wiki.portal" - CHAT_OAUTH_CLIENT = "web.chat.oauth.client" - CHAT_WX_ACCESS = "web.chat.wx.access" - CHAT_WX_AGENT = "web.chat.wx.agent" - CHAT_WX_TEMPLATE = "web.chat.wx.template" - CHAT_WX_OCR = "web.chat.wx.ocr" - CHAT_MESSAGE = "web.chat.message" - CHAT_HEADER = "web.chat.header" - CHAT_IFRAME = "web.chat.iframe" - CHAT_FAVOR = "web.chat.favor" - CHAT_FLOWS = "web.chat.flows" - CHAT_GRANT = "web.chat.grant" - CHAT_POD = "web.chat.pod" - CHAT_CMD = "web.chat.cmd" - TEAM_PLAN = "web.team.plan" + CODE_MYSQL_CLIENT = "web.code.mysql.client" + CODE_GIT_SERVICE = "web.code.git.service" + CODE_GIT_SEARCH = "web.code.git.search" + CODE_GIT_STATUS = "web.code.git.status" + CODE_GIT_REPOS = "web.code.git.repos" + CODE_AUTOGEN = "web.code.autogen" + CODE_COMPILE = "web.code.compile" + CODE_PUBLISH = "web.code.publish" + CODE_UPGRADE = "web.code.upgrade" + CODE_VIMER = "web.code.vimer" + CODE_INNER = "web.code.inner" + CODE_XTERM = "web.code.xterm" + CODE_MOD = "web.code.mod" + WIKI_FEEL = "web.wiki.feel" + WIKI_DRAW = "web.wiki.draw" + WIKI_WORD = "web.wiki.word" + WIKI_PORTAL = "web.wiki.portal" + CHAT_OAUTH_CLIENT = "web.chat.oauth.client" + CHAT_WX_ACCESS = "web.chat.wx.access" + CHAT_WX_AGENT = "web.chat.wx.agent" + CHAT_WX_TEMPLATE = "web.chat.wx.template" + CHAT_WX_OCR = "web.chat.wx.ocr" + CHAT_MESSAGE = "web.chat.message" + CHAT_HEADER = "web.chat.header" + CHAT_IFRAME = "web.chat.iframe" + CHAT_FAVOR = "web.chat.favor" + CHAT_FLOWS = "web.chat.flows" + CHAT_GRANT = "web.chat.grant" + CHAT_POD = "web.chat.pod" + CHAT_CMD = "web.chat.cmd" + TEAM_PLAN = "web.team.plan" + TEAM_GONGANXITONG_USER = "web.team.gonganxitong.user" + TEAM_RENZHENGSHOUQUAN_AUTH = "web.team.renzhengshouquan.auth" ) func MessageInsertJSON(m *ice.Message, zone, name, text string, arg ...string) { diff --git a/base/web/spide.go b/base/web/spide.go index bc29f16b..797719a5 100644 --- a/base/web/spide.go +++ b/base/web/spide.go @@ -415,9 +415,8 @@ func init() { }}, }) nfs.TemplateText = func(m *ice.Message, p string) string { - // if p := kit.Select(nfs.TemplatePath(m, path.Base(p)), m.Option("_template")); kit.HasPrefix(p, nfs.P, nfs.REQUIRE, ice.HTTP) { if p := kit.Select(nfs.TemplatePath(m, p), m.Option("_template")); kit.HasPrefix(p, nfs.P, nfs.REQUIRE, ice.HTTP) { - return m.Cmdx(SPIDE, ice.OPS, SPIDE_RAW, http.MethodGet, p) + return kit.Format(mdb.Cache(ice.Pulse, p, func() ice.Any { return m.Cmdx(SPIDE, ice.OPS, SPIDE_RAW, http.MethodGet, p) })) } else if p == "" { return "" } else {