运行 并行Expresse中间件
Running Expresse middleware in parallel
当某个中间件接受参数时,我如何运行我的中间件并行?我正在阅读 this article,其中他们有如下调用:
app.use(getUser);
但我接到了如下电话:
app.use(require('./middleware/settings')(config));
此外,什么时候使用这种方法最好,因为我的 app.js 中有许多中间件正在初始化和触发,例如:
app.use(require("connect-assets")({
paths: [config.app.assets_dir + '/css',
config.app.assets_dir + '/js',
config.app.assets_dir + '/images',
config.app.assets_dir + '/fonts',
config.app.assets_dir + '/bower_components'
],
buildDir: config.app.min_dir,
gzip: true
}));
我应该将它用于部分还是全部?
您链接到的文章中的技术并不真正直接适用于您的情况。他们正在谈论需要 I/O 的多个独立位的单个请求,并从串行进程重构为并行进程。对于资产管道,情况有所不同,该技术不能直接应用。加上第三方模块,您无法控制在构建资产时正在执行的任何 IO 连接资产,但这一切只会发生一次。只要考虑使用他们的 precompile
选项就可以了。
对于资产管理器、静态服务器等常见的第三方中间件,事情已经 "parallel" 因为快速服务器可以一次响应许多请求。当您的自定义业务逻辑具有不需要串行执行的 IO 任务时,async.parallel 技术更适合。
当某个中间件接受参数时,我如何运行我的中间件并行?我正在阅读 this article,其中他们有如下调用:
app.use(getUser);
但我接到了如下电话:
app.use(require('./middleware/settings')(config));
此外,什么时候使用这种方法最好,因为我的 app.js 中有许多中间件正在初始化和触发,例如:
app.use(require("connect-assets")({
paths: [config.app.assets_dir + '/css',
config.app.assets_dir + '/js',
config.app.assets_dir + '/images',
config.app.assets_dir + '/fonts',
config.app.assets_dir + '/bower_components'
],
buildDir: config.app.min_dir,
gzip: true
}));
我应该将它用于部分还是全部?
您链接到的文章中的技术并不真正直接适用于您的情况。他们正在谈论需要 I/O 的多个独立位的单个请求,并从串行进程重构为并行进程。对于资产管道,情况有所不同,该技术不能直接应用。加上第三方模块,您无法控制在构建资产时正在执行的任何 IO 连接资产,但这一切只会发生一次。只要考虑使用他们的 precompile
选项就可以了。
对于资产管理器、静态服务器等常见的第三方中间件,事情已经 "parallel" 因为快速服务器可以一次响应许多请求。当您的自定义业务逻辑具有不需要串行执行的 IO 任务时,async.parallel 技术更适合。