diff --git a/internal/db/models/http_cache_policy_dao.go b/internal/db/models/http_cache_policy_dao.go index 259d029e..54c6d34d 100644 --- a/internal/db/models/http_cache_policy_dao.go +++ b/internal/db/models/http_cache_policy_dao.go @@ -95,7 +95,7 @@ func (this *HTTPCachePolicyDAO) FindAllEnabledCachePolicies(tx *dbs.Tx) (result } // CreateCachePolicy 创建缓存策略 -func (this *HTTPCachePolicyDAO) CreateCachePolicy(tx *dbs.Tx, isOn bool, name string, description string, capacityJSON []byte, maxKeys int64, maxSizeJSON []byte, storageType string, storageOptionsJSON []byte) (int64, error) { +func (this *HTTPCachePolicyDAO) CreateCachePolicy(tx *dbs.Tx, isOn bool, name string, description string, capacityJSON []byte, maxKeys int64, maxSizeJSON []byte, storageType string, storageOptionsJSON []byte, syncCompressionCache bool) (int64, error) { op := NewHTTPCachePolicyOperator() op.State = HTTPCachePolicyStateEnabled op.IsOn = isOn @@ -112,6 +112,7 @@ func (this *HTTPCachePolicyDAO) CreateCachePolicy(tx *dbs.Tx, isOn bool, name st if len(storageOptionsJSON) > 0 { op.Options = storageOptionsJSON } + op.SyncCompressionCache = syncCompressionCache // 默认的缓存条件 cacheRef := &serverconfigs.HTTPCacheRef{ @@ -188,7 +189,7 @@ func (this *HTTPCachePolicyDAO) CreateDefaultCachePolicy(tx *dbs.Tx, name string return 0, err } - policyId, err := this.CreateCachePolicy(tx, true, "\""+name+"\"缓存策略", "默认创建的缓存策略", capacityJSON, 0, maxSizeJSON, serverconfigs.CachePolicyStorageFile, storageOptionsJSON) + policyId, err := this.CreateCachePolicy(tx, true, "\""+name+"\"缓存策略", "默认创建的缓存策略", capacityJSON, 0, maxSizeJSON, serverconfigs.CachePolicyStorageFile, storageOptionsJSON, false) if err != nil { return 0, err } @@ -196,7 +197,7 @@ func (this *HTTPCachePolicyDAO) CreateDefaultCachePolicy(tx *dbs.Tx, name string } // UpdateCachePolicy 修改缓存策略 -func (this *HTTPCachePolicyDAO) UpdateCachePolicy(tx *dbs.Tx, policyId int64, isOn bool, name string, description string, capacityJSON []byte, maxKeys int64, maxSizeJSON []byte, storageType string, storageOptionsJSON []byte) error { +func (this *HTTPCachePolicyDAO) UpdateCachePolicy(tx *dbs.Tx, policyId int64, isOn bool, name string, description string, capacityJSON []byte, maxKeys int64, maxSizeJSON []byte, storageType string, storageOptionsJSON []byte, syncCompressionCache bool) error { if policyId <= 0 { return errors.New("invalid policyId") } @@ -217,6 +218,7 @@ func (this *HTTPCachePolicyDAO) UpdateCachePolicy(tx *dbs.Tx, policyId int64, is if len(storageOptionsJSON) > 0 { op.Options = storageOptionsJSON } + op.SyncCompressionCache = syncCompressionCache err := this.Save(tx, op) if err != nil { return err @@ -247,6 +249,7 @@ func (this *HTTPCachePolicyDAO) ComposeCachePolicy(tx *dbs.Tx, policyId int64, c config.IsOn = policy.IsOn == 1 config.Name = policy.Name config.Description = policy.Description + config.SyncCompressionCache = policy.SyncCompressionCache == 1 // capacity if IsNotNull(policy.Capacity) { diff --git a/internal/db/models/http_cache_policy_model.go b/internal/db/models/http_cache_policy_model.go index 88a71d64..b7fa6f7f 100644 --- a/internal/db/models/http_cache_policy_model.go +++ b/internal/db/models/http_cache_policy_model.go @@ -2,39 +2,41 @@ package models // HTTPCachePolicy HTTP缓存策略 type HTTPCachePolicy struct { - Id uint32 `field:"id"` // ID - AdminId uint32 `field:"adminId"` // 管理员ID - UserId uint32 `field:"userId"` // 用户ID - TemplateId uint32 `field:"templateId"` // 模版ID - IsOn uint8 `field:"isOn"` // 是否启用 - Name string `field:"name"` // 名称 - Capacity string `field:"capacity"` // 容量数据 - MaxKeys uint64 `field:"maxKeys"` // 最多Key值 - MaxSize string `field:"maxSize"` // 最大缓存内容尺寸 - Type string `field:"type"` // 存储类型 - Options string `field:"options"` // 存储选项 - CreatedAt uint64 `field:"createdAt"` // 创建时间 - State uint8 `field:"state"` // 状态 - Description string `field:"description"` // 描述 - Refs string `field:"refs"` // 默认的缓存设置 + Id uint32 `field:"id"` // ID + AdminId uint32 `field:"adminId"` // 管理员ID + UserId uint32 `field:"userId"` // 用户ID + TemplateId uint32 `field:"templateId"` // 模版ID + IsOn uint8 `field:"isOn"` // 是否启用 + Name string `field:"name"` // 名称 + Capacity string `field:"capacity"` // 容量数据 + MaxKeys uint64 `field:"maxKeys"` // 最多Key值 + MaxSize string `field:"maxSize"` // 最大缓存内容尺寸 + Type string `field:"type"` // 存储类型 + Options string `field:"options"` // 存储选项 + CreatedAt uint64 `field:"createdAt"` // 创建时间 + State uint8 `field:"state"` // 状态 + Description string `field:"description"` // 描述 + Refs string `field:"refs"` // 默认的缓存设置 + SyncCompressionCache uint8 `field:"syncCompressionCache"` // 是否同步写入压缩缓存 } type HTTPCachePolicyOperator struct { - Id interface{} // ID - AdminId interface{} // 管理员ID - UserId interface{} // 用户ID - TemplateId interface{} // 模版ID - IsOn interface{} // 是否启用 - Name interface{} // 名称 - Capacity interface{} // 容量数据 - MaxKeys interface{} // 最多Key值 - MaxSize interface{} // 最大缓存内容尺寸 - Type interface{} // 存储类型 - Options interface{} // 存储选项 - CreatedAt interface{} // 创建时间 - State interface{} // 状态 - Description interface{} // 描述 - Refs interface{} // 默认的缓存设置 + Id interface{} // ID + AdminId interface{} // 管理员ID + UserId interface{} // 用户ID + TemplateId interface{} // 模版ID + IsOn interface{} // 是否启用 + Name interface{} // 名称 + Capacity interface{} // 容量数据 + MaxKeys interface{} // 最多Key值 + MaxSize interface{} // 最大缓存内容尺寸 + Type interface{} // 存储类型 + Options interface{} // 存储选项 + CreatedAt interface{} // 创建时间 + State interface{} // 状态 + Description interface{} // 描述 + Refs interface{} // 默认的缓存设置 + SyncCompressionCache interface{} // 是否同步写入压缩缓存 } func NewHTTPCachePolicyOperator() *HTTPCachePolicyOperator { diff --git a/internal/rpc/services/service_http_cache_policy.go b/internal/rpc/services/service_http_cache_policy.go index 8d2d4225..211a4010 100644 --- a/internal/rpc/services/service_http_cache_policy.go +++ b/internal/rpc/services/service_http_cache_policy.go @@ -46,7 +46,7 @@ func (this *HTTPCachePolicyService) CreateHTTPCachePolicy(ctx context.Context, r tx := this.NullTx() - policyId, err := models.SharedHTTPCachePolicyDAO.CreateCachePolicy(tx, req.IsOn, req.Name, req.Description, req.CapacityJSON, req.MaxKeys, req.MaxSizeJSON, req.Type, req.OptionsJSON) + policyId, err := models.SharedHTTPCachePolicyDAO.CreateCachePolicy(tx, req.IsOn, req.Name, req.Description, req.CapacityJSON, req.MaxKeys, req.MaxSizeJSON, req.Type, req.OptionsJSON, req.SyncCompressionCache) if err != nil { return nil, err } @@ -63,7 +63,7 @@ func (this *HTTPCachePolicyService) UpdateHTTPCachePolicy(ctx context.Context, r tx := this.NullTx() - err = models.SharedHTTPCachePolicyDAO.UpdateCachePolicy(tx, req.HttpCachePolicyId, req.IsOn, req.Name, req.Description, req.CapacityJSON, req.MaxKeys, req.MaxSizeJSON, req.Type, req.OptionsJSON) + err = models.SharedHTTPCachePolicyDAO.UpdateCachePolicy(tx, req.HttpCachePolicyId, req.IsOn, req.Name, req.Description, req.CapacityJSON, req.MaxKeys, req.MaxSizeJSON, req.Type, req.OptionsJSON, req.SyncCompressionCache) if err != nil { return nil, err }