javascript - 为什么bottleneck.js 中的maxConcurrent 设置不起作用?
问题描述
我正在使用瓶颈npm 包。我将限制器设置如下:
const limiter = new Bottleneck({
maxConcurrent: 3,
minTime: 100
});
最多同时运行 3 个任务。但是,我看到任何时候都不会有超过 1 个任务同时运行。
这是我的代码:
const Bottleneck = require('bottleneck');
const main = () => {
console.log('starting main');
const limiter = new Bottleneck({
maxConcurrent: 3,
minTime: 100
});
const worker = (text, limiterCb) => {
Promise.resolve()
.then(() => {
console.log(`starting ${text}`);
let res;
for (let i = 0; i < 10000000000; i++) {
res++
}
console.log(`ending ${text}`);
limiterCb();
});
};
const limiterCb = res => console.log('limiter finished');
limiter.submit(worker, 'hello', limiterCb);
limiter.submit(worker, 'hello', limiterCb);
limiter.submit(worker, 'hello', limiterCb);
limiter.submit(worker, 'hello', limiterCb);
}
main();
console.log('exiting')
我看到的是第一个任务开始并完成,然后是第二个等等。但是因为每个任务需要超过 100 毫秒才能完成,所以我预计会有多个任务同时运行。
解决方案
推荐阅读
- sql - 如何调试以文件名为参数的 pro*cobol 程序
- pagination - 每页的默认行数覆盖了 Vuetify 1.5.2 中 v-data-iterator 中的 items-per-page 属性
- python - 套索从 matplotlib 图中选择点:选择时颜色会发生变化
- sql - 递归函数合适吗?
- javascript - jquery,dataTransfer 在任何事件(或任何地方)中都不存在
- r - R 如何使工作 t.test 命令行变为功能?
- regex - 正则表达式以获取分组数组中的特定字符
- android - 我的 Kotlin 项目没有在资源中创建导航文件夹
- python - 如何在 IBKR python API 中获得纳斯达克的开盘价?
- c# - 如何在 ASCX 页面上的 ASP 网站上从 C# 代码执行 url 调用?