refactor(cache): streamline subscription cache clearing logic
This commit is contained in:
parent
c5be0081ca
commit
b97e2d650e
@ -7,11 +7,9 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/perfect-panel/server/internal/model/log"
|
||||
"github.com/perfect-panel/server/internal/model/node"
|
||||
"github.com/perfect-panel/server/pkg/constant"
|
||||
"github.com/perfect-panel/server/pkg/logger"
|
||||
|
||||
@ -466,17 +464,8 @@ func (l *ActivateOrderLogic) calculateCommission(price int64, percentage uint8)
|
||||
|
||||
// clearServerCache clears user list cache for all servers associated with the subscription
|
||||
func (l *ActivateOrderLogic) clearServerCache(ctx context.Context, sub *subscribe.Subscribe) {
|
||||
nodeIds := tool.StringToInt64Slice(sub.Nodes)
|
||||
tags := strings.Split(sub.NodeTags, ",")
|
||||
|
||||
err := l.svc.NodeModel.ClearNodeCache(ctx, &node.FilterNodeParams{
|
||||
Page: 1,
|
||||
Size: 1000,
|
||||
NodeId: nodeIds,
|
||||
Tag: tags,
|
||||
})
|
||||
if err != nil {
|
||||
logger.WithContext(ctx).Error("[Order Queue] Clear node cache failed", logger.Field("error", err.Error()))
|
||||
if err := l.svc.SubscribeModel.ClearCache(ctx, sub.Id); err != nil {
|
||||
logger.WithContext(ctx).Error("[Order Queue] Clear subscribe cache failed", logger.Field("error", err.Error()))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,11 +3,8 @@ package subscription
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/perfect-panel/server/internal/model/node"
|
||||
"github.com/perfect-panel/server/pkg/tool"
|
||||
queue "github.com/perfect-panel/server/queue/types"
|
||||
|
||||
"github.com/perfect-panel/server/pkg/logger"
|
||||
@ -207,31 +204,8 @@ func (l *CheckSubscriptionLogic) clearServerCache(ctx context.Context, userSubs
|
||||
}
|
||||
|
||||
for sub, _ := range subs {
|
||||
info, err := l.svc.SubscribeModel.FindOne(ctx, sub)
|
||||
if err != nil {
|
||||
logger.Errorw("[CheckSubscription] FindOne subscribe failed", logger.Field("error", err.Error()), logger.Field("subscribe_id", sub))
|
||||
continue
|
||||
}
|
||||
if info != nil && info.Id == sub {
|
||||
var nodes []int64
|
||||
if info.Nodes != "" {
|
||||
nodes = tool.StringToInt64Slice(info.Nodes)
|
||||
}
|
||||
var tag []string
|
||||
if info.NodeTags != "" {
|
||||
tag = strings.Split(info.NodeTags, ",")
|
||||
}
|
||||
|
||||
err = l.svc.NodeModel.ClearNodeCache(ctx, &node.FilterNodeParams{
|
||||
Page: 1,
|
||||
Size: 1000,
|
||||
Tag: tag,
|
||||
ServerId: nodes,
|
||||
})
|
||||
if err != nil {
|
||||
logger.Errorw("[CheckSubscription] ClearNodeCache failed", logger.Field("error", err.Error()), logger.Field("subscribe_id", sub))
|
||||
continue
|
||||
}
|
||||
if err := l.svc.SubscribeModel.ClearCache(ctx, sub); err != nil {
|
||||
logger.Errorw("[CheckSubscription] ClearCache failed", logger.Field("error", err.Error()), logger.Field("subscribe_id", sub))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,12 +9,10 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/perfect-panel/server/internal/model/log"
|
||||
"github.com/perfect-panel/server/internal/model/node"
|
||||
"github.com/perfect-panel/server/internal/model/subscribe"
|
||||
"github.com/perfect-panel/server/internal/model/user"
|
||||
"github.com/perfect-panel/server/internal/svc"
|
||||
"github.com/perfect-panel/server/pkg/logger"
|
||||
"github.com/perfect-panel/server/pkg/tool"
|
||||
"github.com/perfect-panel/server/queue/types"
|
||||
|
||||
"github.com/hibiken/asynq"
|
||||
@ -598,31 +596,11 @@ func (l *ResetTrafficLogic) clearCache(ctx context.Context, list []*user.Subscri
|
||||
}
|
||||
|
||||
for sub, _ := range subs {
|
||||
info, err := l.svc.SubscribeModel.FindOne(ctx, sub)
|
||||
if err != nil {
|
||||
logger.Errorw("[CheckSubscription] FindOne subscribe failed", logger.Field("error", err.Error()), logger.Field("subscribe_id", sub))
|
||||
continue
|
||||
}
|
||||
if info != nil && info.Id == sub {
|
||||
var nodes []int64
|
||||
if info.Nodes != "" {
|
||||
nodes = tool.StringToInt64Slice(info.Nodes)
|
||||
}
|
||||
var tag []string
|
||||
if info.NodeTags != "" {
|
||||
tag = strings.Split(info.NodeTags, ",")
|
||||
}
|
||||
|
||||
err = l.svc.NodeModel.ClearNodeCache(ctx, &node.FilterNodeParams{
|
||||
Page: 1,
|
||||
Size: 1000,
|
||||
Tag: tag,
|
||||
ServerId: nodes,
|
||||
})
|
||||
if err != nil {
|
||||
logger.Errorw("[CheckSubscription] ClearNodeCache failed", logger.Field("error", err.Error()), logger.Field("subscribe_id", sub))
|
||||
continue
|
||||
}
|
||||
if err := l.svc.SubscribeModel.ClearCache(ctx, sub); err != nil {
|
||||
logger.Errorw("[ResetTraffic] Failed to clear subscription cache",
|
||||
logger.Field("subscribeId", sub),
|
||||
logger.Field("error", err.Error()),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user