From c0b45cb204ac78775374df99b757e086b3f93693 Mon Sep 17 00:00:00 2001 From: Alan Date: Mon, 16 Oct 2023 13:33:03 +0800 Subject: [PATCH] distribute queue --- DataObjects/Core_notify_server.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/DataObjects/Core_notify_server.php b/DataObjects/Core_notify_server.php index ed1aec7d..09db236e 100644 --- a/DataObjects/Core_notify_server.php +++ b/DataObjects/Core_notify_server.php @@ -216,13 +216,15 @@ class Pman_Core_DataObjects_Core_notify_server extends DB_DataObject $target_len = floor( ($totalq + $total_add) / $num_servers ); foreach($in_q as $sid => $cq) { - if ( $target_len - $cq < 1) { + if ( $cq > $target_len) { continue; } $up[ $sid ] = array_slice($to_add, 0, $target_len - $cq); } - foreach($to_add as $i) { - $up[ $ids[0] ][] = $i; + + // add the reminder evently + foreach($to_add as $n=>$i) { + $up[ $ids[$n % $num_servers] ][] = $i; } // distribution needs to go to ones that have the shortest queues. - so to balance out the queues -- 2.39.2