get unstuck
This commit is contained in:
parent
0c070c5aec
commit
ffc071adbb
1 changed files with 12 additions and 6 deletions
18
site.js
18
site.js
|
@ -71,17 +71,23 @@ async function rounder(users, data, mode) {
|
||||||
let p = [];
|
let p = [];
|
||||||
let congested = [];
|
let congested = [];
|
||||||
let timeout = false;
|
let timeout = false;
|
||||||
setTimeout(function() {
|
|
||||||
|
let pr = new Promise(resolve => setTimeout(function (...ag) {
|
||||||
timeout = true;
|
timeout = true;
|
||||||
},(process.env.delay*1000) || (60*1000));
|
resolve(ag);
|
||||||
|
}, (process.env.delay * 1000) || (60 * 1000)))
|
||||||
|
|
||||||
for (let u of users) {
|
for (let u of users) {
|
||||||
if (timeout) break;
|
if (timeout) break;
|
||||||
let it = 0;
|
let it = 0;
|
||||||
while (p.length >= (process.env.maxRate || 15)) {
|
while (p.length >= (process.env.maxRate || 15)) {
|
||||||
p = p.filter(x => x != 'hi');
|
p = p.filter(x => x != 'hi');
|
||||||
|
if (timeout) {
|
||||||
|
console.warn(`Somehow, this is stuck.`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (p.length == 0) break;
|
if (p.length == 0) break;
|
||||||
let pv = await Promise.any(p);
|
let pv = await Promise.any([...p,pr]);
|
||||||
it++;
|
it++;
|
||||||
if (it > 10) {
|
if (it > 10) {
|
||||||
console.warn(`Promises got congested. Moving to another array...`)
|
console.warn(`Promises got congested. Moving to another array...`)
|
||||||
|
@ -118,7 +124,7 @@ async function rounder(users, data, mode) {
|
||||||
let endn = [];
|
let endn = [];
|
||||||
for (let h in data) {
|
for (let h in data) {
|
||||||
let dh = data[h];
|
let dh = data[h];
|
||||||
endn = endn.concat(dh.following,dh.followers);
|
endn = endn.concat(dh.following, dh.followers);
|
||||||
endn = [...new Set(endn)];
|
endn = [...new Set(endn)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,14 +211,14 @@ async function siteCollector(user, path, site, useLimit, data2) {
|
||||||
let users = [];
|
let users = [];
|
||||||
let data = {};
|
let data = {};
|
||||||
|
|
||||||
users = await rounder(penv,data,false);
|
users = await rounder(penv, data, false);
|
||||||
|
|
||||||
users = [...new Set(users)];
|
users = [...new Set(users)];
|
||||||
|
|
||||||
let d = process.env.depth || 1;
|
let d = process.env.depth || 1;
|
||||||
for (let i = 1; i < d; i++) {
|
for (let i = 1; i < d; i++) {
|
||||||
let tempSet = [...users];
|
let tempSet = [...users];
|
||||||
users = await rounder(tempSet,data,true);
|
users = await rounder(tempSet, data, true);
|
||||||
users = [...new Set(users)];
|
users = [...new Set(users)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue