提问人:boredProjects 提问时间:6/21/2022 最后编辑:boredProjects 更新时间:6/22/2022 访问量:77
何时通过回调实现 bluebird 库
When to implement bluebird library over callbacks
问:
这是我第一次构建一个全栈的 react 项目,所以任何帮助都会有所帮助。
从本质上讲,我正在构建一个端点,我真的很想每秒完成大约 200 个请求。现在在网上看,这似乎是一个非常合理的数字,但是由于这是我第一次这样做,我不确定这是否属实。
目前使用 settimeout(),我能够在大约 3 分钟内推送和解析 2000ish 请求或 3000 个请求。这很慢,每个声音大约有 10-20 个请求。如果我提出请求,但不用担心立即解决请求,那么我每秒可以处理大约 90 个请求。就速度而言,这仍然不是我需要的,我也希望它们能更快地得到解决。
所以我现在的问题是使用 bluebird 库会更好吗,因为它个人听起来要快得多。当我尝试发出大约 100k+ 的请求时,我遇到的另一个问题是我用完了净资源,我不确定如何释放任何资源或如何处理它。
以下是我的代码
const stepData = async() =>{
try{
const body = {record,testtime,current_ma,capacity_mah,specap_mah_g,voltage_v}
assignToBody(body)
const response = await fetch('http://localhost:5000/stepdata',{
method:"POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify(body)
})}catch(err){
console.log(err.message)
setTimeout(delayQue,5000)
fail = true
rate = rate + 5
console.log(rate)
}
}
const delayQue = () =>{
if(count % 500 == 0 && count > 0 && !fail){
setTimeout(delayQue,10000)
assignVals(row)
row++
count++
}
else if(row < vals.length && !fail){
setTimeout(delayQue,rate)
assignVals(row)
row++
count++
}else{
fail = false
setTimeout(function(){rate = rate - 5},30000)
}
}
附加到 delayQue() 的函数,通过 setTimeOut() 调用。
const assignVals = (row) =>{
for(let i = 0; i < possibleCols.length;i++){
if(cols.includes(possibleCols[i])){
valsToPass[i] = vals[row][cols.lastIndexOf(possibleCols[i])]
}else{
valsToPass[i] = null;
}
}
stepData()
}
const assignToBody = (body) =>{
for(let i = 0; i < possibleCols.length; i++){
if(cols.includes(possibleCols[i])){
body[possibleCols[i]] = valsToPass[cols.lastIndexOf(possibleCols[i])]
}
}
}
答: 暂无答案
评论