package config // RunnerConfig Runner 集群配置 type RunnerConfig struct { Mode string `mapstructure:"mode"` // "standalone" | "cluster",空则跟随 websocket.mode Cluster RunnerClusterConfig `mapstructure:"cluster"` } // RunnerClusterConfig Runner 集群模式配置 type RunnerClusterConfig struct { InstanceID string `mapstructure:"instance_id"` // 空则跟随 websocket.cluster.instance_id TaskChannel string `mapstructure:"task_channel"` ResultChannel string `mapstructure:"result_channel"` RegistryPrefix string `mapstructure:"registry_prefix"` CapPrefix string `mapstructure:"cap_prefix"` RegistryTTL int `mapstructure:"registry_ttl"` HeartbeatInterval int `mapstructure:"heartbeat_interval"` } // ApplyWSDefaults 用 WebSocket 配置填充 Runner 中未设置的共享字段 func (r *RunnerConfig) ApplyWSDefaults(ws WSConfig) { if r.Mode == "" { r.Mode = ws.Mode } if r.Cluster.InstanceID == "" { r.Cluster.InstanceID = ws.Cluster.InstanceID } }