mirror of
https://github.com/hibiken/asynq.git
synced 2025-04-20 15:50:20 +08:00
Add RedisInfo method to RDB
This commit is contained in:
parent
0f8f266632
commit
eea919d117
@ -3,6 +3,7 @@ package rdb
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-redis/redis/v7"
|
"github.com/go-redis/redis/v7"
|
||||||
@ -93,6 +94,23 @@ func (r *RDB) CurrentStats() (*Stats, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RedisInfo returns a map of redis info.
|
||||||
|
func (r *RDB) RedisInfo() (map[string]string, error) {
|
||||||
|
res, err := r.client.Info().Result()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
info := make(map[string]string)
|
||||||
|
lines := strings.Split(res, "\r\n")
|
||||||
|
for _, l := range lines {
|
||||||
|
kv := strings.Split(l, ":")
|
||||||
|
if len(kv) == 2 {
|
||||||
|
info[kv[0]] = kv[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return info, nil
|
||||||
|
}
|
||||||
|
|
||||||
// ListEnqueued returns all enqueued tasks that are ready to be processed.
|
// ListEnqueued returns all enqueued tasks that are ready to be processed.
|
||||||
func (r *RDB) ListEnqueued() ([]*EnqueuedTask, error) {
|
func (r *RDB) ListEnqueued() ([]*EnqueuedTask, error) {
|
||||||
data, err := r.client.LRange(base.DefaultQueue, 0, -1).Result()
|
data, err := r.client.LRange(base.DefaultQueue, 0, -1).Result()
|
||||||
|
@ -120,7 +120,30 @@ func TestCurrentStats(t *testing.T) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRedisInfo(t *testing.T) {
|
||||||
|
r := setup(t)
|
||||||
|
|
||||||
|
info, err := r.RedisInfo()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("RDB.RedisInfo() returned error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
wantKeys := []string{
|
||||||
|
"redis_version",
|
||||||
|
"uptime_in_days",
|
||||||
|
"connected_clients",
|
||||||
|
"used_memory_human",
|
||||||
|
"used_memory_peak_human",
|
||||||
|
"used_memory_peak_perc",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, key := range wantKeys {
|
||||||
|
if _, ok := info[key]; !ok {
|
||||||
|
t.Errorf("RDB.RedisInfo() = %v is missing entry for %q", info, key)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestListEnqueued(t *testing.T) {
|
func TestListEnqueued(t *testing.T) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user