mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-07 10:40:26 +08:00
写入缓存时减少对缓存目录的检查频率
This commit is contained in:
@@ -501,18 +501,6 @@ func (this *FileStorage) openWriter(key string, expiredAt int64, status int, siz
|
|||||||
return nil, NewCapacityError("the disk is full")
|
return nil, NewCapacityError("the disk is full")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 可以只stat一次
|
|
||||||
_, err = os.Stat(dir)
|
|
||||||
if err != nil {
|
|
||||||
if !os.IsNotExist(err) {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = os.MkdirAll(dir, 0777)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查缓存是否已经生成
|
// 检查缓存是否已经生成
|
||||||
var cachePathName = dir + "/" + hash
|
var cachePathName = dir + "/" + hash
|
||||||
var cachePath = cachePathName + ".cache"
|
var cachePath = cachePathName + ".cache"
|
||||||
@@ -578,9 +566,17 @@ func (this *FileStorage) openWriter(key string, expiredAt int64, status int, siz
|
|||||||
}
|
}
|
||||||
var before = time.Now()
|
var before = time.Now()
|
||||||
writer, err := os.OpenFile(tmpPath, flags, 0666)
|
writer, err := os.OpenFile(tmpPath, flags, 0666)
|
||||||
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
_ = os.MkdirAll(dir, 0777)
|
||||||
|
|
||||||
|
// open file again
|
||||||
|
writer, err = os.OpenFile(tmpPath, flags, 0666)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if !isFlushing {
|
if !isFlushing {
|
||||||
if time.Since(before) >= maxOpenFilesSlowCost {
|
if time.Since(before) >= maxOpenFilesSlowCost {
|
||||||
maxOpenFiles.Slow()
|
maxOpenFiles.Slow()
|
||||||
|
|||||||
Reference in New Issue
Block a user