mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-12-05 20:00:25 +08:00
缓存支持默认条件
This commit is contained in:
@@ -63,8 +63,13 @@ func (this *UpdateAction) RunPost(params struct {
|
|||||||
Description string
|
Description string
|
||||||
IsOn bool
|
IsOn bool
|
||||||
|
|
||||||
|
RefsJSON []byte
|
||||||
|
|
||||||
Must *actions.Must
|
Must *actions.Must
|
||||||
}) {
|
}) {
|
||||||
|
// 创建日志
|
||||||
|
defer this.CreateLog(oplogs.LevelInfo, "修改缓存策略:%d", params.CachePolicyId)
|
||||||
|
|
||||||
params.Must.
|
params.Must.
|
||||||
Field("name", params.Name).
|
Field("name", params.Name).
|
||||||
Require("请输入策略名称")
|
Require("请输入策略名称")
|
||||||
@@ -104,6 +109,22 @@ func (this *UpdateAction) RunPost(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验缓存条件
|
||||||
|
refs := []*serverconfigs.HTTPCacheRef{}
|
||||||
|
if len(params.RefsJSON) > 0 {
|
||||||
|
err = json.Unmarshal(params.RefsJSON, &refs)
|
||||||
|
if err != nil {
|
||||||
|
this.Fail("缓存条件解析失败:" + err.Error())
|
||||||
|
}
|
||||||
|
for _, ref := range refs {
|
||||||
|
err = ref.Init()
|
||||||
|
if err != nil {
|
||||||
|
this.Fail("缓存条件校验失败:" + err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_, err = this.RPC().HTTPCachePolicyRPC().UpdateHTTPCachePolicy(this.AdminContext(), &pb.UpdateHTTPCachePolicyRequest{
|
_, err = this.RPC().HTTPCachePolicyRPC().UpdateHTTPCachePolicy(this.AdminContext(), &pb.UpdateHTTPCachePolicyRequest{
|
||||||
HttpCachePolicyId: params.CachePolicyId,
|
HttpCachePolicyId: params.CachePolicyId,
|
||||||
IsOn: params.IsOn,
|
IsOn: params.IsOn,
|
||||||
@@ -120,8 +141,15 @@ func (this *UpdateAction) RunPost(params struct {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建日志
|
// 修改缓存条件
|
||||||
defer this.CreateLog(oplogs.LevelInfo, "修改缓存策略:%d", params.CachePolicyId)
|
_, err = this.RPC().HTTPCachePolicyRPC().UpdateHTTPCachePolicyRefs(this.AdminContext(), &pb.UpdateHTTPCachePolicyRefsRequest{
|
||||||
|
HttpCachePolicyId: params.CachePolicyId,
|
||||||
|
RefsJSON: params.RefsJSON,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
this.ErrorPage(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this.Success()
|
this.Success()
|
||||||
}
|
}
|
||||||
|
|||||||
58
web/public/js/components/server/http-cache-refs-box.js
Normal file
58
web/public/js/components/server/http-cache-refs-box.js
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
Vue.component("http-cache-refs-box", {
|
||||||
|
props: ["v-cache-refs"],
|
||||||
|
data: function () {
|
||||||
|
let refs = this.vCacheRefs
|
||||||
|
if (refs == null) {
|
||||||
|
refs = []
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
refs: refs
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
timeUnitName: function (unit) {
|
||||||
|
switch (unit) {
|
||||||
|
case "ms":
|
||||||
|
return "毫秒"
|
||||||
|
case "second":
|
||||||
|
return "秒"
|
||||||
|
case "minute":
|
||||||
|
return "分钟"
|
||||||
|
case "hour":
|
||||||
|
return "小时"
|
||||||
|
case "day":
|
||||||
|
return "天"
|
||||||
|
case "week":
|
||||||
|
return "周 "
|
||||||
|
}
|
||||||
|
return unit
|
||||||
|
}
|
||||||
|
},
|
||||||
|
template: `<div>
|
||||||
|
<input type="hidden" name="refsJSON" :value="JSON.stringify(refs)"/>
|
||||||
|
|
||||||
|
<p class="comment" v-if="refs.length == 0">暂时还没有缓存条件。</p>
|
||||||
|
<div v-show="refs.length > 0">
|
||||||
|
<table class="ui table selectable celled">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>缓存条件</th>
|
||||||
|
<th class="width10">缓存时间</th>
|
||||||
|
<th class="two op">操作</th>
|
||||||
|
</tr>
|
||||||
|
<tr v-for="(cacheRef, index) in refs">
|
||||||
|
<td>
|
||||||
|
<http-request-conds-view :v-conds="cacheRef.conds"></http-request-conds-view>
|
||||||
|
</td>
|
||||||
|
<td>{{cacheRef.life.count}} {{timeUnitName(cacheRef.life.unit)}}</td>
|
||||||
|
<td>
|
||||||
|
<a href="" @click.prevent="updateRef(index, cacheRef)">修改</a>
|
||||||
|
<a href="" @click.prevent="removeRef(index)">删除</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="margin"></div>
|
||||||
|
</div>`
|
||||||
|
})
|
||||||
105
web/public/js/components/server/http-cache-refs-config-box.js
Normal file
105
web/public/js/components/server/http-cache-refs-config-box.js
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
Vue.component("http-cache-refs-config-box", {
|
||||||
|
props: ["v-cache-refs"],
|
||||||
|
data: function () {
|
||||||
|
let refs = this.vCacheRefs
|
||||||
|
if (refs == null) {
|
||||||
|
refs = []
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
refs: refs
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addRef: function () {
|
||||||
|
window.UPDATING_CACHE_REF = null
|
||||||
|
|
||||||
|
let width = window.innerWidth
|
||||||
|
if (width > 1024) {
|
||||||
|
width = 1024
|
||||||
|
}
|
||||||
|
let height = window.innerHeight
|
||||||
|
if (height > 500) {
|
||||||
|
height = 500
|
||||||
|
}
|
||||||
|
let that = this
|
||||||
|
teaweb.popup("/servers/server/settings/cache/createPopup", {
|
||||||
|
width: width + "px",
|
||||||
|
height: height + "px",
|
||||||
|
callback: function (resp) {
|
||||||
|
that.refs.push(resp.data.cacheRef)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
updateRef: function (index, cacheRef) {
|
||||||
|
window.UPDATING_CACHE_REF = cacheRef
|
||||||
|
|
||||||
|
let width = window.innerWidth
|
||||||
|
if (width > 1024) {
|
||||||
|
width = 1024
|
||||||
|
}
|
||||||
|
let height = window.innerHeight
|
||||||
|
if (height > 500) {
|
||||||
|
height = 500
|
||||||
|
}
|
||||||
|
let that = this
|
||||||
|
teaweb.popup("/servers/server/settings/cache/createPopup", {
|
||||||
|
width: width + "px",
|
||||||
|
height: height + "px",
|
||||||
|
callback: function (resp) {
|
||||||
|
Vue.set(that.refs, index, resp.data.cacheRef)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
removeRef: function (index) {
|
||||||
|
let that = this
|
||||||
|
teaweb.confirm("确定要删除此缓存设置吗?", function () {
|
||||||
|
that.refs.$remove(index)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
timeUnitName: function (unit) {
|
||||||
|
switch (unit) {
|
||||||
|
case "ms":
|
||||||
|
return "毫秒"
|
||||||
|
case "second":
|
||||||
|
return "秒"
|
||||||
|
case "minute":
|
||||||
|
return "分钟"
|
||||||
|
case "hour":
|
||||||
|
return "小时"
|
||||||
|
case "day":
|
||||||
|
return "天"
|
||||||
|
case "week":
|
||||||
|
return "周 "
|
||||||
|
}
|
||||||
|
return unit
|
||||||
|
}
|
||||||
|
},
|
||||||
|
template: `<div>
|
||||||
|
<input type="hidden" name="refsJSON" :value="JSON.stringify(refs)"/>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<table class="ui table selectable celled" v-show="refs.length > 0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>缓存条件</th>
|
||||||
|
<th class="width10">缓存时间</th>
|
||||||
|
<th class="two op">操作</th>
|
||||||
|
</tr>
|
||||||
|
<tr v-for="(cacheRef, index) in refs">
|
||||||
|
<td>
|
||||||
|
<http-request-conds-view :v-conds="cacheRef.conds"></http-request-conds-view>
|
||||||
|
</td>
|
||||||
|
<td>{{cacheRef.life.count}} {{timeUnitName(cacheRef.life.unit)}}</td>
|
||||||
|
<td>
|
||||||
|
<a href="" @click.prevent="updateRef(index, cacheRef)">修改</a>
|
||||||
|
<a href="" @click.prevent="removeRef(index)">删除</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<button class="ui button tiny" @click.prevent="addRef">+添加缓存设置</button>
|
||||||
|
</div>
|
||||||
|
<div class="margin"></div>
|
||||||
|
</div>`
|
||||||
|
})
|
||||||
@@ -80,6 +80,12 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 默认缓存条件 -->
|
||||||
|
<h4>默认缓存条件</h4>
|
||||||
|
<http-cache-refs-box :v-cache-refs="cachePolicy.cacheRefs"></http-cache-refs-box>
|
||||||
|
|
||||||
|
<!-- 使用此策略的集群 -->
|
||||||
<h4>使用此策略的集群</h4>
|
<h4>使用此策略的集群</h4>
|
||||||
<p class="comment" v-if="clusters.length == 0">暂时还没有集群使用此策略。</p>
|
<p class="comment" v-if="clusters.length == 0">暂时还没有集群使用此策略。</p>
|
||||||
<table class="ui table selectable" v-if="clusters.length > 0">
|
<table class="ui table selectable" v-if="clusters.length > 0">
|
||||||
|
|||||||
@@ -94,5 +94,9 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<h4>默认缓存条件</h4>
|
||||||
|
<http-cache-refs-config-box :v-cache-refs="cachePolicy.cacheRefs"></http-cache-refs-config-box>
|
||||||
|
|
||||||
<submit-btn></submit-btn>
|
<submit-btn></submit-btn>
|
||||||
</form>
|
</form>
|
||||||
Reference in New Issue
Block a user