diff --git a/pkg/cron/task.go b/pkg/cron/task.go index bdb2581f..a123f5dc 100644 --- a/pkg/cron/task.go +++ b/pkg/cron/task.go @@ -504,6 +504,14 @@ func ArtistAutoConfirmAnalysisTask() { } func UpdateBundleBalance() { + reply := cache.RedisClient.SetNX(bundleModel.UpdateBundleBalanceLockKey, "1", 30*time.Minute) + if !reply.Val() { + zap.L().Warn("UpdateBundleBalance 任务正在被其他实例处理") + return + } + defer func() { + cache.RedisClient.Del(bundleModel.UpdateBundleBalanceLockKey) + }() service.BundleProvider.UpdateBundleBalance(context.Background(), &bundle.UpdateBundleBalanceReq{}) } diff --git a/pkg/model/bundle/bundle.go b/pkg/model/bundle/bundle.go index c6a6da88..263b7a43 100644 --- a/pkg/model/bundle/bundle.go +++ b/pkg/model/bundle/bundle.go @@ -1,5 +1,9 @@ package bundle +const ( + UpdateBundleBalanceLockKey = "update_bundle_balance:lock" +) + type UserWorkConfirmReq struct { WorkUuid string `json:"workUuid"` ConfirmRemark string `json:"confirmRemark"` @@ -13,7 +17,6 @@ type UserWorkAnalysisConfirmReq struct { } type GetBundleBalanceListResp struct { - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` }