diff options
Diffstat (limited to 'plugins/websockets/config.go')
-rw-r--r-- | plugins/websockets/config.go | 65 |
1 files changed, 28 insertions, 37 deletions
diff --git a/plugins/websockets/config.go b/plugins/websockets/config.go index f3cb8e12..be4aaa82 100644 --- a/plugins/websockets/config.go +++ b/plugins/websockets/config.go @@ -1,22 +1,16 @@ package websockets -import "time" +import ( + "time" + + "github.com/spiral/roadrunner/v2/pkg/pool" +) /* websockets: # pubsubs should implement PubSub interface to be collected via endure.Collects - # also, they should implement RPC methods to publish data into them - # pubsubs might use general config section or its own pubsubs:["redis", "amqp", "memory"] - - # sample of the own config section for the redis pubsub driver - redis: - address: - - localhost:1111 - .... the rest - - # path used as websockets path path: "/ws" */ @@ -26,33 +20,10 @@ type Config struct { // http path for the websocket Path string `mapstructure:"path"` // ["redis", "amqp", "memory"] - PubSubs []string `mapstructure:"pubsubs"` - Middleware []string `mapstructure:"middleware"` - Redis *RedisConfig `mapstructure:"redis"` -} + PubSubs []string `mapstructure:"pubsubs"` + Middleware []string `mapstructure:"middleware"` -type RedisConfig struct { - Addrs []string `mapstructure:"addrs"` - DB int `mapstructure:"db"` - Username string `mapstructure:"username"` - Password string `mapstructure:"password"` - MasterName string `mapstructure:"master_name"` - SentinelPassword string `mapstructure:"sentinel_password"` - RouteByLatency bool `mapstructure:"route_by_latency"` - RouteRandomly bool `mapstructure:"route_randomly"` - MaxRetries int `mapstructure:"max_retries"` - DialTimeout time.Duration `mapstructure:"dial_timeout"` - MinRetryBackoff time.Duration `mapstructure:"min_retry_backoff"` - MaxRetryBackoff time.Duration `mapstructure:"max_retry_backoff"` - PoolSize int `mapstructure:"pool_size"` - MinIdleConns int `mapstructure:"min_idle_conns"` - MaxConnAge time.Duration `mapstructure:"max_conn_age"` - ReadTimeout time.Duration `mapstructure:"read_timeout"` - WriteTimeout time.Duration `mapstructure:"write_timeout"` - PoolTimeout time.Duration `mapstructure:"pool_timeout"` - IdleTimeout time.Duration `mapstructure:"idle_timeout"` - IdleCheckFreq time.Duration `mapstructure:"idle_check_freq"` - ReadOnly bool `mapstructure:"read_only"` + Pool *pool.Config `mapstructure:"pool"` } // InitDefault initialize default values for the ws config @@ -64,4 +35,24 @@ func (c *Config) InitDefault() { // memory used by default c.PubSubs = append(c.PubSubs, "memory") } + + if c.Pool == nil { + c.Pool = &pool.Config{} + if c.Pool.NumWorkers == 0 { + // 2 workers by default + c.Pool.NumWorkers = 2 + } + + if c.Pool.AllocateTimeout == 0 { + c.Pool.AllocateTimeout = time.Minute + } + + if c.Pool.DestroyTimeout == 0 { + c.Pool.DestroyTimeout = time.Minute + } + if c.Pool.Supervisor == nil { + return + } + c.Pool.Supervisor.InitDefaults() + } } |