From 183b38854c8efef2af9e4118060bc2dc4a84befc Mon Sep 17 00:00:00 2001
From: Holden Rohrer
Date: Thu, 26 Mar 2020 03:28:41 +0000
Subject: fixed bug which has been making me tear my hair out
---
tools/schedule.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
(limited to 'tools')
diff --git a/tools/schedule.js b/tools/schedule.js
index f9604bf..c110bb3 100644
--- a/tools/schedule.js
+++ b/tools/schedule.js
@@ -87,7 +87,10 @@ exports.Queue = function(delayms, maxExport, call){
// Step 2: Start at lowest, and pop all until job.data.length>job.normweight*num (decreasing num as popping and recalc job.normweight). Delete the job.
let weightsum = jobq.map(job => job.wt).reduce((acc, cur)=>acc+cur);
while (jobq[0] && jobq[0].data.length<(jobq[0].wt*num/weightsum)){
- weightsum -= jobq[0].wt;
+ // The second req is SO weird. Think about it this way: for len objs
+ // to be pushed, the "odds" of the job getting a push must >= len (pushed
+ // len times). But it gets num tries, so the odds*num >= len.
+ // The odds are wt/wtsum for each try.
dequeued.push(...jobq.shift().data);
}
--
cgit