koa-static-cache源码 使用了fs.readFileSync 来读取文件, 这个不会阻塞cpu吗?
源码
function loadFile(name, dir, options, files) {
....
var stats = fs.statSync(filename)
var buffer = fs.readFileSync(filename)
obj.cacheControl = options.cacheControl
obj.maxAge = obj.maxAge ? obj.maxAge : options.maxAge || 0
obj.type = obj.mime = mime.lookup(pathname) || 'application/octet-stream'
obj.mtime = stats.mtime
obj.length = stats.size
obj.md5 = crypto.createHash('md5').update(buffer).digest('base64')
debug('file: ' + JSON.stringify(obj, null, 2))
if (options.buffer)
obj.buffer = buffer
buffer = null
return obj
}
```end
求解
6 回复
@nanzm caches the assets on initialization-youneed to restart the process to update the assets.(can turn off with options.preload = false) 跟 【fs.readFileSync 来读取文件, 这个不会阻塞cpu】 有联系吗,我不太理解,谢谢
设计如此,这个函数会在启动期调用,然后全部缓存到 cache,而不是运行期,所以不会影响到用户。
https://github.com/koajs/static-cache/blob/master/index.js#L33
只阻塞一次,不会阻塞每个请求。
@atian25 非常感谢,我明白了了,谢谢!
@JacksonTian 非常感谢,我明白了!