28 lines
1.0 KiB
Go
28 lines
1.0 KiB
Go
|
|
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
|
||
|
|
}
|
||
|
|
}
|