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