mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-29 03:30:24 +08:00
优化过时缓存时长(从600秒改为1200秒)
This commit is contained in:
@@ -367,10 +367,9 @@ func (this *FileListDB) CleanPrefix(prefix string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
var count = int64(10000)
|
var count = int64(10000)
|
||||||
var staleLife = 600 // TODO 需要可以设置
|
|
||||||
var unixTime = fasttime.Now().Unix() // 只删除当前的,不删除新的
|
var unixTime = fasttime.Now().Unix() // 只删除当前的,不删除新的
|
||||||
for {
|
for {
|
||||||
result, err := this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET expiredAt=0,staleAt=? WHERE id IN (SELECT id FROM "`+this.itemsTableName+`" WHERE expiredAt>0 AND createdAt<=? AND INSTR("key", ?)=1 LIMIT `+types.String(count)+`)`, unixTime+int64(staleLife), unixTime, prefix)
|
result, err := this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET expiredAt=0,staleAt=? WHERE id IN (SELECT id FROM "`+this.itemsTableName+`" WHERE expiredAt>0 AND createdAt<=? AND INSTR("key", ?)=1 LIMIT `+types.String(count)+`)`, unixTime+DefaultStaleCacheSeconds, unixTime, prefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return this.WrapError(err)
|
return this.WrapError(err)
|
||||||
}
|
}
|
||||||
@@ -414,15 +413,14 @@ func (this *FileListDB) CleanMatchKey(key string) error {
|
|||||||
queryKey = strings.Replace(queryKey, "*", "%", 1)
|
queryKey = strings.Replace(queryKey, "*", "%", 1)
|
||||||
|
|
||||||
// TODO 检查大批量数据下的操作性能
|
// TODO 检查大批量数据下的操作性能
|
||||||
var staleLife = 600 // TODO 需要可以设置
|
|
||||||
var unixTime = fasttime.Now().Unix() // 只删除当前的,不删除新的
|
var unixTime = fasttime.Now().Unix() // 只删除当前的,不删除新的
|
||||||
|
|
||||||
_, err = this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET "expiredAt"=0, "staleAt"=? WHERE "host" GLOB ? AND "host" NOT GLOB ? AND "key" LIKE ? ESCAPE '\'`, unixTime+int64(staleLife), host, "*."+host, queryKey)
|
_, err = this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET "expiredAt"=0, "staleAt"=? WHERE "host" GLOB ? AND "host" NOT GLOB ? AND "key" LIKE ? ESCAPE '\'`, unixTime+DefaultStaleCacheSeconds, host, "*."+host, queryKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET "expiredAt"=0, "staleAt"=? WHERE "host" GLOB ? AND "host" NOT GLOB ? AND "key" LIKE ? ESCAPE '\'`, unixTime+int64(staleLife), host, "*."+host, queryKey+SuffixAll+"%")
|
_, err = this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET "expiredAt"=0, "staleAt"=? WHERE "host" GLOB ? AND "host" NOT GLOB ? AND "key" LIKE ? ESCAPE '\'`, unixTime+DefaultStaleCacheSeconds, host, "*."+host, queryKey+SuffixAll+"%")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -456,10 +454,9 @@ func (this *FileListDB) CleanMatchPrefix(prefix string) error {
|
|||||||
queryPrefix += "%"
|
queryPrefix += "%"
|
||||||
|
|
||||||
// TODO 检查大批量数据下的操作性能
|
// TODO 检查大批量数据下的操作性能
|
||||||
var staleLife = 600 // TODO 需要可以设置
|
|
||||||
var unixTime = fasttime.Now().Unix() // 只删除当前的,不删除新的
|
var unixTime = fasttime.Now().Unix() // 只删除当前的,不删除新的
|
||||||
|
|
||||||
_, err = this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET "expiredAt"=0, "staleAt"=? WHERE "host" GLOB ? AND "host" NOT GLOB ? AND "key" LIKE ? ESCAPE '\'`, unixTime+int64(staleLife), host, "*."+host, queryPrefix)
|
_, err = this.writeDB.Exec(`UPDATE "`+this.itemsTableName+`" SET "expiredAt"=0, "staleAt"=? WHERE "host" GLOB ? AND "host" NOT GLOB ? AND "key" LIKE ? ESCAPE '\'`, unixTime+DefaultStaleCacheSeconds, host, "*."+host, queryPrefix)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ const (
|
|||||||
FileToMemoryMaxSize = 32 * sizes.M // 可以从文件写入到内存的最大文件尺寸
|
FileToMemoryMaxSize = 32 * sizes.M // 可以从文件写入到内存的最大文件尺寸
|
||||||
FileTmpSuffix = ".tmp"
|
FileTmpSuffix = ".tmp"
|
||||||
DefaultMinDiskFreeSpace uint64 = 5 << 30 // 当前磁盘最小剩余空间
|
DefaultMinDiskFreeSpace uint64 = 5 << 30 // 当前磁盘最小剩余空间
|
||||||
|
DefaultStaleCacheSeconds = 1200 // 过时缓存留存时间
|
||||||
)
|
)
|
||||||
|
|
||||||
var sharedWritingFileKeyMap = map[string]zero.Zero{} // key => bool
|
var sharedWritingFileKeyMap = map[string]zero.Zero{} // key => bool
|
||||||
|
|||||||
@@ -982,7 +982,7 @@ func (this *HTTPWriter) DelayRead() bool {
|
|||||||
|
|
||||||
// 计算stale时长
|
// 计算stale时长
|
||||||
func (this *HTTPWriter) calculateStaleLife() int {
|
func (this *HTTPWriter) calculateStaleLife() int {
|
||||||
var staleLife = 600 // TODO 可以在缓存策略里设置此时间
|
var staleLife = caches.DefaultStaleCacheSeconds
|
||||||
var staleConfig = this.req.web.Cache.Stale
|
var staleConfig = this.req.web.Cache.Stale
|
||||||
if staleConfig != nil && staleConfig.IsOn {
|
if staleConfig != nil && staleConfig.IsOn {
|
||||||
// 从Header中读取stale-if-error
|
// 从Header中读取stale-if-error
|
||||||
|
|||||||
Reference in New Issue
Block a user