koa-static-cache源码 使用了fs.readFileSync 来读取文件, 这个不会阻塞cpu吗?
发布于 6 年前 作者 fengyaogit123 4755 次浏览 来自 问答
      源码
	  
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 非常感谢,我明白了!

回到顶部