mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 16:00:25 +08:00 
			
		
		
		
	文件缓存自动加载热门数据时检查是否有足够的内存空间
This commit is contained in:
		@@ -1156,11 +1156,16 @@ func (this *FileStorage) purgeLoop() {
 | 
			
		||||
 | 
			
		||||
// 热点数据任务
 | 
			
		||||
func (this *FileStorage) hotLoop() {
 | 
			
		||||
	var memoryStorage = this.memoryStorage
 | 
			
		||||
	var memoryStorage = this.memoryStorage // copy
 | 
			
		||||
	if memoryStorage == nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// check memory space size
 | 
			
		||||
	if !memoryStorage.HasFreeSpaceForHotItems() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.hotMapLocker.Lock()
 | 
			
		||||
	if len(this.hotMap) == 0 {
 | 
			
		||||
		this.hotMapLocker.Unlock()
 | 
			
		||||
 
 | 
			
		||||
@@ -400,6 +400,11 @@ func (this *MemoryStorage) CanSendfile() bool {
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HasFreeSpaceForHotItems 是否有足够的空间提供给热门内容
 | 
			
		||||
func (this *MemoryStorage) HasFreeSpaceForHotItems() bool {
 | 
			
		||||
	return atomic.LoadInt64(&this.usedSize) < this.memoryCapacityBytes()*3/4
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 计算Key Hash
 | 
			
		||||
func (this *MemoryStorage) hash(key string) uint64 {
 | 
			
		||||
	return xxhash.Sum64String(key)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user