Skip to content

Commit 6ecb67c

Browse files
yokowuclaude
andcommitted
feat: 注册 vmidle 模块、添加 ControlConn.Has、更新空闲默认值
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 3ed357d commit 6ecb67c

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

backend/biz/register.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"github.com/samber/do"
55

66
"github.com/chaitin/MonkeyCode/backend/biz/file"
7+
"github.com/chaitin/MonkeyCode/backend/biz/vmidle"
78
"github.com/chaitin/MonkeyCode/backend/biz/git"
89
"github.com/chaitin/MonkeyCode/backend/biz/host"
910
"github.com/chaitin/MonkeyCode/backend/biz/notify"
@@ -29,6 +30,7 @@ func RegisterAll(i *do.Injector) error {
2930
git.ProvideGit(i)
3031
project.ProvideProject(i)
3132
file.ProvideFile(i)
33+
vmidle.ProvideVMIdle(i)
3234

3335
// 阶段二:统一触发 handler 初始化(do.MustInvoke,此时所有服务已注册)
3436
notify.InvokeNotify(i)
@@ -41,6 +43,7 @@ func RegisterAll(i *do.Injector) error {
4143
git.InvokeGit(i)
4244
project.InvokeProject(i)
4345
file.InvokeFile(i)
46+
vmidle.InvokeVMIdle(i)
4447

4548
return nil
4649
}

backend/config/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ func Init(dir string) (*Config, error) {
185185
v.SetDefault("redis.port", 6379)
186186
v.SetDefault("redis.pass", "")
187187
v.SetDefault("redis.db", 0)
188-
v.SetDefault("vm_idle.sleep_seconds", 600)
189-
v.SetDefault("vm_idle.recycle_seconds", 604800)
188+
v.SetDefault("vm_idle.sleep_seconds", 900)
189+
v.SetDefault("vm_idle.recycle_seconds", 259200)
190190
v.SetDefault("init_team.email", "")
191191
v.SetDefault("init_team.name", "")
192192
v.SetDefault("init_team.password", "")

backend/pkg/ws/ws.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,10 @@ func (cc *ControlConn) Get(id string) ([]*WebsocketManager, bool) {
158158
conns, ok := cc.conns[id]
159159
return conns, ok
160160
}
161+
162+
// Has 检查指定 taskID 是否还有活跃的 control 连接
163+
func (cc *ControlConn) Has(id string) bool {
164+
cc.mu.RLock()
165+
defer cc.mu.RUnlock()
166+
return len(cc.conns[id]) > 0
167+
}

0 commit comments

Comments
 (0)