mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 16:00:25 +08:00 
			
		
		
		
	读取缓存时总是尝试打开文件,不受并发读的限制
This commit is contained in:
		@@ -393,11 +393,7 @@ func (this *FileStorage) openReader(key string, allowMemory bool, useStale bool,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// 尝试通过MMAP读取
 | 
						// 尝试通过MMAP读取
 | 
				
			||||||
	if estimatedSize > 0 {
 | 
						if estimatedSize > 0 {
 | 
				
			||||||
		if !fsutils.ReaderLimiter.TryAck() {
 | 
					 | 
				
			||||||
			return nil, ErrServerIsBusy
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		reader, err := this.tryMMAPReader(isPartial, estimatedSize, path)
 | 
							reader, err := this.tryMMAPReader(isPartial, estimatedSize, path)
 | 
				
			||||||
		fsutils.ReaderLimiter.Release()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -416,11 +412,7 @@ func (this *FileStorage) openReader(key string, allowMemory bool, useStale bool,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	var err error
 | 
						var err error
 | 
				
			||||||
	if openFile == nil {
 | 
						if openFile == nil {
 | 
				
			||||||
		if !fsutils.ReaderLimiter.TryAck() {
 | 
					 | 
				
			||||||
			return nil, ErrServerIsBusy
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		fp, err = os.OpenFile(path, os.O_RDONLY, 0444)
 | 
							fp, err = os.OpenFile(path, os.O_RDONLY, 0444)
 | 
				
			||||||
		fsutils.ReaderLimiter.Release()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if !os.IsNotExist(err) {
 | 
								if !os.IsNotExist(err) {
 | 
				
			||||||
				return nil, err
 | 
									return nil, err
 | 
				
			||||||
@@ -591,11 +583,7 @@ func (this *FileStorage) openWriter(key string, expiredAt int64, status int, hea
 | 
				
			|||||||
		// 数据库中是否存在
 | 
							// 数据库中是否存在
 | 
				
			||||||
		existsCacheItem, _, _ := this.list.Exist(hash)
 | 
							existsCacheItem, _, _ := this.list.Exist(hash)
 | 
				
			||||||
		if existsCacheItem {
 | 
							if existsCacheItem {
 | 
				
			||||||
			if !fsutils.ReaderLimiter.TryAck() {
 | 
					 | 
				
			||||||
				return nil, ErrServerIsBusy
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			readerFp, err := os.OpenFile(tmpPath, os.O_RDONLY, 0444)
 | 
								readerFp, err := os.OpenFile(tmpPath, os.O_RDONLY, 0444)
 | 
				
			||||||
			fsutils.ReaderLimiter.Release()
 | 
					 | 
				
			||||||
			if err == nil {
 | 
								if err == nil {
 | 
				
			||||||
				var partialReader = NewPartialFileReader(readerFp)
 | 
									var partialReader = NewPartialFileReader(readerFp)
 | 
				
			||||||
				err = partialReader.Init()
 | 
									err = partialReader.Init()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user