|
@@ -278,7 +278,6 @@ class chctlex
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-
|
|
|
$pThis = $this;
|
|
|
$price_filter = function ($names,$spec,$card_type,$quality) use($pThis,$max_inprice)
|
|
|
{
|
|
@@ -303,17 +302,12 @@ class chctlex
|
|
|
|
|
|
$ctl_splitor = function ($ctls)
|
|
|
{
|
|
|
- $feeds = [];
|
|
|
$workers = [];
|
|
|
$overs = [];
|
|
|
|
|
|
foreach ($ctls as $item)
|
|
|
{
|
|
|
Log::record("ctl_splitor {$item->name()} speed={$item->cur_speed()} max_speed={$item->max_speed()}",Log::DEBUG);
|
|
|
-// if($item->need_feed()) {
|
|
|
-// $feeds[] = $item;
|
|
|
-// }
|
|
|
-// else
|
|
|
if($item->speed_overload()) {
|
|
|
$overs[] = $item;
|
|
|
}
|
|
@@ -321,35 +315,7 @@ class chctlex
|
|
|
$workers[] = $item;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- return [$feeds,$workers,$overs];
|
|
|
- };
|
|
|
-
|
|
|
- $assign_feeds = function ($feeds)
|
|
|
- {
|
|
|
- if(empty($feeds)) {
|
|
|
- return [[],[]];
|
|
|
- }
|
|
|
-
|
|
|
- $max = count($feeds) - 1;
|
|
|
- $pos = mt_rand(0, $max);
|
|
|
-
|
|
|
- $cur_feeds = [];
|
|
|
- $next_feeds = [];
|
|
|
-
|
|
|
- $i = 0;
|
|
|
- foreach ($feeds as $item)
|
|
|
- {
|
|
|
- if($i == $pos) {
|
|
|
- $cur_feeds[] = $item;
|
|
|
- } else {
|
|
|
- $next_feeds[] = $item;
|
|
|
- }
|
|
|
-
|
|
|
- $i++;
|
|
|
- }
|
|
|
-
|
|
|
- return [$cur_feeds,$next_feeds];
|
|
|
+ return [$workers,$overs];
|
|
|
};
|
|
|
|
|
|
$time_map = function ($ctls, $left_time)
|
|
@@ -368,7 +334,6 @@ class chctlex
|
|
|
return array_merge($header,$ender);
|
|
|
};
|
|
|
|
|
|
- //for log
|
|
|
$header_fun = function (int $spec, int $card_type, int $quality) {
|
|
|
return "auto_match {$quality}-{$spec}-{$card_type}";
|
|
|
};
|
|
@@ -399,23 +364,19 @@ class chctlex
|
|
|
$ctls = $price_filter($names, $spec, $card_type, $quality);
|
|
|
$ctlitem_logger("price filter", $ctls);
|
|
|
|
|
|
- [$feeds,$workers,$overloads] = $ctl_splitor($ctls);
|
|
|
- [$cur_feeds,$next_feeds] = $assign_feeds($feeds);
|
|
|
+ [$workers,$overloads] = $ctl_splitor($ctls);
|
|
|
|
|
|
- $ctlitem_logger("cur feeds",$cur_feeds);
|
|
|
- $ctlitem_logger("next feeds",$next_feeds);
|
|
|
+ $ctlitem_logger("workers",$workers);
|
|
|
$ctlitem_logger("over loads",$overloads);
|
|
|
|
|
|
usort($workers, $desc_profit);
|
|
|
+ usort($overloads, $desc_profit);
|
|
|
+
|
|
|
$ctlitem_logger("sort works",$workers);
|
|
|
+ $ctlitem_logger("sort loads",$workers);
|
|
|
|
|
|
- if(!empty($overloads)) {
|
|
|
- $assigner = new overload_assigner();
|
|
|
- $assigner->add($overloads);
|
|
|
- $overloads = $assigner->assign();
|
|
|
- }
|
|
|
|
|
|
- $ctls = array_merge($cur_feeds, $workers, $overloads, $next_feeds);
|
|
|
+ $ctls = array_merge($workers, $overloads);
|
|
|
$ctlitem_logger("result monitor ctls",$ctls);
|
|
|
|
|
|
$ctls = $time_map($ctls,$left_time);
|