mirror of
https://github.com/hibiken/asynq.git
synced 2025-10-23 10:16:12 +08:00
This commit is contained in:
37
inspector.go
37
inspector.go
@@ -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()
|
||||
|
Reference in New Issue
Block a user