mirror of
https://github.com/Stone-Red-Code/RemoteExec.git
synced 2026-09-04 09:06:20 +02:00
Improve configuration of RemoteExecutor
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
namespace RemoteExec.Client.LoadBalancingStrategies;
|
||||
|
||||
internal class ResourceAwareStrategy : ILoadBalancingStrategy
|
||||
{
|
||||
public ServerConnection? SelectServer(IEnumerable<ServerConnection> availableServers)
|
||||
{
|
||||
return availableServers.MinBy(s =>
|
||||
{
|
||||
if (s.Metrics == null)
|
||||
{
|
||||
return double.MaxValue;
|
||||
}
|
||||
|
||||
double cpuScore = s.Metrics.CpuUsage;
|
||||
double activeTaskScore = s.Metrics.ActiveTasks * 10;
|
||||
double backlogScore = s.TaskChannel.Reader.Count * 50;
|
||||
|
||||
return cpuScore + activeTaskScore + backlogScore;
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user