Documentation ¶
Index ¶
- Constants
- Variables
- func GRedis() *cGRedis
- func QueueMemory() *cQueueMemory
- func QueueNsq() *cQueueNsq
- func QueueRabbit() *cQueueRabbit
- func QueueRedis() *cQueueRedis
- func QueueRocket() *cQueueRocket
- func Redis() *cRedis
- type Cache
- type Config
- type GRedisOptions
- type Initialize
- type Jwt
- type Locker
- type NSQOptions
- type Queue
- type QueueInitialize
- type RabbitOptions
- type RedisConnectOptions
- type RocketOptions
- type Settings
- func (e *Settings) Bootstrap(ctx context.Context, fs ...Initialize)
- func (e *Settings) Cfg() *gcfg.Config
- func (e *Settings) Config() *Config
- func (e *Settings) GetJwt(module string) *Jwt
- func (e *Settings) Init(ctx context.Context)
- func (e *Settings) SetCfg(cf *gcfg.Config) *Settings
- func (e *Settings) SetConfig(c Config) *Settings
- func (e *Settings) SetJwt(module string, jwt *Jwt) *Settings
- func (e *Settings) SetSrv(srv *ghttp.Server) *Settings
- func (e *Settings) Srv() *ghttp.Server
- type Tls
Constants ¶
View Source
const (
DefaultGroupName = "default" // Default configuration group name.
)
View Source
const (
MemoryQueueName = "memory"
)
View Source
const (
NsqQueueName = "nsq"
)
View Source
const (
QueueCfgName = "queueConfig"
)
View Source
const (
RabbitmqQueueName = "rabbitmq"
)
View Source
const (
RedisQueueName = "redis"
)
View Source
const (
RocketQueueName = "rocketmq"
)
Variables ¶
View Source
var (
ExtendConfig interface{}
)
View Source
var JwtConfig = new(Jwt)
Functions ¶
func QueueMemory ¶
func QueueMemory() *cQueueMemory
func QueueRabbit ¶
func QueueRabbit() *cQueueRabbit
func QueueRedis ¶
func QueueRedis() *cQueueRedis
func QueueRocket ¶
func QueueRocket() *cQueueRocket
Types ¶
type Cache ¶
type Cache struct { Redis *GRedisOptions Memory interface{} }
type Config ¶
type Config struct { Jwt map[string]*Jwt `yaml:"jwt"` Cache *Cache `yaml:"cache"` Queue *Queue `yaml:"queue"` Locker *Locker `yaml:"locker"` Extend interface{} `yaml:"extend"` }
Config 配置集合
type GRedisOptions ¶ added in v0.3.3
type GRedisOptions struct { Addr string `yaml:"addr" json:"addr"` Username string `yaml:"username" json:"username"` Password string `yaml:"password" json:"password"` DB int `yaml:"db" json:"db"` Tls *Tls `yaml:"tls" json:"tls"` }
func (*GRedisOptions) GetClientOptions ¶ added in v0.3.3
type Initialize ¶
type Locker ¶
type Locker struct {
Redis *GRedisOptions
}
func LockerConfig ¶
func LockerConfig() *Locker
type NSQOptions ¶
type NSQOptions struct { DialTimeout time.Duration `opt:"dial_timeout" default:"1s"` // Deadlines for network reads and writes ReadTimeout time.Duration `opt:"read_timeout" min:"100ms" max:"5m" default:"60s"` WriteTimeout time.Duration `opt:"write_timeout" min:"100ms" max:"5m" default:"1s"` // Addresses is the local address to use when dialing an nsqd. Addresses []string `opt:"addresses"` // Duration between polling lookupd for new producers, and fractional jitter to add to // the lookupd pool loop. this helps evenly distribute requests even if multiple consumers // restart at the same time // // NOTE: when not using nsqlookupd, LookupdPollInterval represents the duration of time between // reconnection attempts LookupdPollInterval time.Duration `opt:"lookupd_poll_interval" min:"10ms" max:"5m" default:"60s"` LookupdPollJitter float64 `opt:"lookupd_poll_jitter" min:"0" max:"1" default:"0.3"` // Maximum duration when REQueueing (for doubling of deferred requeue) MaxRequeueDelay time.Duration `opt:"max_requeue_delay" min:"0" max:"60m" default:"15m"` DefaultRequeueDelay time.Duration `opt:"default_requeue_delay" min:"0" max:"60m" default:"90s"` // Maximum amount of time to backoff when processing fails 0 == no backoff MaxBackoffDuration time.Duration `opt:"max_backoff_duration" min:"0" max:"60m" default:"2m"` // Unit of time for calculating consumer backoff BackoffMultiplier time.Duration `opt:"backoff_multiplier" min:"0" max:"60m" default:"1s"` // Maximum number of times this consumer will attempt to process a message before giving up MaxAttempts uint16 `opt:"max_attempts" min:"0" max:"65535" default:"5"` // Duration to wait for a message from an nsqd when in a state where RDY // counts are re-distributed (e.g. max_in_flight < num_producers) LowRdyIdleTimeout time.Duration `opt:"low_rdy_idle_timeout" min:"1s" max:"5m" default:"10s"` // Duration to wait until redistributing RDY for an nsqd regardless of LowRdyIdleTimeout LowRdyTimeout time.Duration `opt:"low_rdy_timeout" min:"1s" max:"5m" default:"30s"` // Duration between redistributing max-in-flight to connections RDYRedistributeInterval time.Duration `opt:"rdy_redistribute_interval" min:"1ms" max:"5s" default:"5s"` // Identifiers sent to nsqd representing this client // UserAgent is in the spirit of HTTP (default: "<client_library_name>/<version>") ClientID string `opt:"client_id"` // (defaults: short hostname) Hostname string `opt:"hostname"` UserAgent string `opt:"user_agent"` // Duration of time between heartbeats. This must be less than ReadTimeout HeartbeatInterval time.Duration `opt:"heartbeat_interval" default:"30s"` // Integer percentage to sample the channel (requires nsqd 0.2.25+) SampleRate int32 `opt:"sample_rate" min:"0" max:"99"` Tls *Tls `yaml:"tls" json:"tls"` // Compression Settings Deflate bool `opt:"deflate"` DeflateLevel int `opt:"deflate_level" min:"1" max:"9" default:"6"` Snappy bool `opt:"snappy"` // Size of the buffer (in bytes) used by nsqd for buffering writes to this connection OutputBufferSize int64 `opt:"output_buffer_size" default:"16384"` // Timeout used by nsqd before flushing buffered writes (set to 0 to disable). // // WARNING: configuring clients with an extremely low // (< 25ms) output_buffer_timeout has a significant effect // on nsqd CPU usage (particularly with > 50 clients connected). OutputBufferTimeout time.Duration `opt:"output_buffer_timeout" default:"250ms"` // Maximum number of messages to allow in flight (concurrency knob) MaxInFlight int `opt:"max_in_flight" min:"0" default:"1"` // The server-side message timeout for messages delivered to this client MsgTimeout time.Duration `opt:"msg_timeout" min:"0"` // secret for nsqd authentication (requires nsqd 0.2.29+) AuthSecret string `opt:"auth_secret"` }
func (*NSQOptions) GetNsqOptions ¶ added in v0.3.4
func (e *NSQOptions) GetNsqOptions(ctx context.Context, s *Settings) (*nsq.Config, error)
type Queue ¶
type Queue struct {
CfgList []QueueInitialize
}
func QueueConfig ¶
func QueueConfig() *Queue
type QueueInitialize ¶ added in v0.3.4
type QueueInitialize interface { Initialize GetQueue(ctx context.Context) (storage.AdapterQueue, error) }
type RabbitOptions ¶
type RabbitOptions struct { Dsn string `yaml:"dsn" json:"dsn"` Addr string `yaml:"addr" json:"addr"` Username string `yaml:"username" json:"username"` Password string `yaml:"password" json:"password"` // Vhost specifies the namespace of permissions, exchanges, queues and // bindings on the server. Dial sets this to the path parsed from the URL. Vhost string `yaml:"vhost" json:"vhost"` ChannelMax int `yaml:"channelMax" json:"channel_max"` // 0 max channels means 2^16 - 1 FrameSize int `yaml:"frameSize" json:"frame_size"` // 0 max bytes means unlimited Heartbeat time.Duration `yaml:"heartbeat" json:"heartbeat"` // less than 1s uses the server's interval ReconnectInterval int `yaml:"reconnectInterval" json:"reconnectInterval"` // TLSClientConfig specifies the client configuration of the TLS connection // when establishing a tls transport. // If the URL uses an amqps scheme, then an empty tls.Config with the // ServerName from the URL is used. Tls *Tls `json:"tls" yaml:"tls"` Cfg *rabbitmq.Config `json:"cfg" yaml:"cfg"` }
func (*RabbitOptions) GetCfg ¶ added in v0.3.4
func (e *RabbitOptions) GetCfg() *rabbitmq.Config
func (*RabbitOptions) GetDsn ¶
func (e *RabbitOptions) GetDsn() string
func (*RabbitOptions) GetRabbitOptions ¶
func (e *RabbitOptions) GetRabbitOptions(ctx context.Context, s *Settings) (*RabbitOptions, error)
func (*RabbitOptions) GetReconnectInterval ¶ added in v0.3.4
func (e *RabbitOptions) GetReconnectInterval() int
type RedisConnectOptions ¶
type RedisConnectOptions struct { Network string `yaml:"network" json:"network"` Addr string `yaml:"addr" json:"addr"` Username string `yaml:"username" json:"username"` Password string `yaml:"password" json:"password"` DB int `yaml:"db" json:"db"` PoolSize int `yaml:"pool_size" json:"pool_size"` Tls *Tls `yaml:"tls" json:"tls"` MaxRetries int `yaml:"max_retries" json:"max_retries"` }
func (*RedisConnectOptions) GetRedisOptions ¶
func (e *RedisConnectOptions) GetRedisOptions(ctx context.Context, s *Settings) (*redis.Options, error)
type RocketOptions ¶
type RocketOptions struct { Urls []string `yaml:"urls" json:"urls"` GroupName string `yaml:"group_name" json:"group_name"` MaxReconsumeTimes int32 `yaml:"max_reconsume_times" json:"max_reconsume_times"` RetryTimes int `yaml:"retry_times" json:"retry_times"` }
func (*RocketOptions) GetRocketOptions ¶
func (e *RocketOptions) GetRocketOptions() (*RocketOptions, error)
Click to show internal directories.
Click to hide internal directories.