2
0
mirror of https://github.com/hibiken/asynq.git synced 2025-10-23 10:16:12 +08:00
Herb Stahl
2022-09-01 14:13:39 -07:00
parent c70ff6a335
commit a718697b1f
10 changed files with 191 additions and 59 deletions

View File

@@ -21,18 +21,51 @@ import (
type Inspector struct {
rdb *rdb.RDB
}
type InspectorConfig struct {
MaxArchiveSize *int
ArchivedExpirationInDays *int
}
func validateInspectorConfig(cfg *InspectorConfig) {
if cfg.MaxArchiveSize == nil {
value := base.DefaultMaxArchiveSize
cfg.MaxArchiveSize = &value
}
if *(cfg.MaxArchiveSize) < 0 {
value := 1
cfg.MaxArchiveSize = &value
}
if cfg.ArchivedExpirationInDays == nil {
value := base.DefaultArchivedExpirationInDays
cfg.ArchivedExpirationInDays = &value
}
if *(cfg.ArchivedExpirationInDays) < 0 {
value := 1
cfg.ArchivedExpirationInDays = &value
}
}
// New returns a new instance of Inspector.
func NewInspector(r RedisConnOpt) *Inspector {
func NewInspectorWithConfig(r RedisConnOpt, cfg InspectorConfig) *Inspector {
validateInspectorConfig(&cfg)
c, ok := r.MakeRedisClient().(redis.UniversalClient)
if !ok {
panic(fmt.Sprintf("inspeq: unsupported RedisConnOpt type %T", r))
}
return &Inspector{
rdb: rdb.NewRDB(c),
rdb: rdb.NewRDBWithConfig(c, rdb.RDBConfig{
MaxArchiveSize: cfg.MaxArchiveSize,
ArchivedExpirationInDays: cfg.ArchivedExpirationInDays,
}),
}
}
// New returns a new instance of Inspector.
func NewInspector(r RedisConnOpt) *Inspector {
return NewInspectorWithConfig(r, InspectorConfig{})
}
// Close closes the connection with redis.
func (i *Inspector) Close() error {
return i.rdb.Close()