Skip to content

Commit 7b54d2f

Browse files
committed
fix: set to cache on Get & GetMulti
1 parent 8665aee commit 7b54d2f

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

memcache4dalgo/get.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,14 @@ func getRecord(ctx context.Context, record dal.Record, get func(ctx context.Cont
1818
return
1919
}
2020
}
21-
return get(ctx, record)
21+
if err = get(ctx, record); err == nil {
22+
var value []byte
23+
if value, err = json.Marshal(record.Data()); err == nil {
24+
_ = memcache.Set(ctx, &memcache.Item{Value: value, Key: key})
25+
if Debugf != nil {
26+
Debugf(ctx, "memcache4dalgo.getRecord: miss & set %s", key)
27+
}
28+
}
29+
}
30+
return
2231
}

memcache4dalgo/get_multi.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"github.com/dal-go/dalgo/dal"
77
"google.golang.org/appengine/memcache"
8+
"strings"
89
)
910

1011
func getMultiRecords(ctx context.Context, records []dal.Record, getMulti func(context.Context, []dal.Record) error) error {
@@ -33,5 +34,21 @@ func getMultiRecords(ctx context.Context, records []dal.Record, getMulti func(co
3334
}
3435
records = records[:len(recordsByKey)]
3536
}
36-
return getMulti(ctx, records)
37+
if err = getMulti(ctx, records); err == nil {
38+
var mks []string
39+
for _, r := range records {
40+
key := r.Key().String()
41+
var value []byte
42+
if value, err = json.Marshal(r.Data()); err == nil {
43+
_ = memcache.Set(ctx, &memcache.Item{Value: value, Key: key})
44+
if Debugf != nil {
45+
mks = append(mks, key)
46+
}
47+
}
48+
}
49+
if Debugf != nil && len(mks) > 0 {
50+
Debugf(ctx, "memcache4dalgo.getMultiRecords: miss & set %v", strings.Join(mks, ", "))
51+
}
52+
}
53+
return err
3754
}

0 commit comments

Comments
 (0)