123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package asynqsvc
- import (
- "crypto/tls"
- "kpt-pasture/config"
- "time"
- "gitee.com/xuyiping_admin/pkg/cputil"
- "github.com/hibiken/asynq"
- )
- type AsynqSetting struct {
- Redis AsynqRedisSetting `json:"redis" yaml:"redis"`
- Queues map[string]int `json:"queues,omitempty" yaml:"queues"`
- Concurrency int `json:"concurrency,omitempty" yaml:"concurrency"`
- LogLevel int32 `json:"log_level,omitempty" yaml:"log_level"`
- }
- func NewAsynqSetting(setting *config.AsynqSetting) *AsynqSetting {
- var curr AsynqSetting
- if err := cputil.DeepCopy(&curr, setting); err != nil {
- panic(err)
- }
- return &curr
- }
- type AsynqRedisSetting struct {
-
-
- Network string `json:"network,omitempty" yaml:"network" env:"ASYNQ_REDIS_NETWORK"`
-
- Addr string `json:"addr,omitempty" yaml:"addr" env:"ASYNQ_REDIS_ADDR"`
-
-
- Username string `json:"username,omitempty" yaml:"username" env:"ASYNQ_REDIS_USERNAME"`
-
-
- Password string `json:"password,omitempty" yaml:"password" env:"ASYNQ_REDIS_PASSWORD"`
-
-
- DB int `json:"db,omitempty" yaml:"db" env:"ASYNQ_REDIS_DB"`
-
-
- DialTimeout time.Duration `json:"dialTimeout,omitempty" yaml:"dial_timeout" env:"ASYNQ_REDIS_DIAL_TIMEOUT"`
-
-
-
-
-
-
- ReadTimeout time.Duration `json:"readTimeout,omitempty" yaml:"read_timeout" env:"ASYNQ_REDIS_READ_TIMEOUT"`
-
-
-
-
-
-
- WriteTimeout time.Duration `json:"writeTimeout,omitempty" yaml:"write_timeout" env:"ASYNQ_REDIS_WRITE_TIMEOUT"`
-
-
- PoolSize int `json:"poolSize,omitempty" yaml:"pool_size" env:"ASYNQ_REDIS_POOL_SIZE"`
-
-
- TLSConfig *tls.Config `json:"tlsConfig,omitempty" yaml:"tls_config"`
- }
- func (a *AsynqSetting) Config() asynq.Config {
- return asynq.Config{
- Concurrency: a.Concurrency,
- Queues: a.Queues,
- ErrorHandler: asynq.ErrorHandlerFunc(asynqError),
- LogLevel: asynq.LogLevel(a.LogLevel),
- }
- }
- func (setting AsynqRedisSetting) RedisClientOpt() asynq.RedisClientOpt {
- return asynq.RedisClientOpt{
- Network: setting.Network,
- Addr: setting.Addr,
- Username: setting.Username,
- Password: setting.Password,
- DB: setting.DB,
- DialTimeout: setting.DialTimeout,
- ReadTimeout: setting.ReadTimeout,
- WriteTimeout: setting.WriteTimeout,
- PoolSize: setting.PoolSize,
- TLSConfig: setting.TLSConfig,
- }
- }
|