using RemoteExec.Client.LoadBalancingStrategies; namespace RemoteExec.Client; /// /// Configuration options for the remote executor client. /// public class RemoteExecutorOptions { /// /// Gets or sets the load balancing strategy used to select servers for task execution. /// Default is . /// public ILoadBalancingStrategy Strategy { get; set; } = new ResourceAwareStrategy(); /// /// Gets or sets the API key used for authenticating with remote servers. /// public string ApiKey { get; set; } = string.Empty; /// /// Gets or sets the maximum time to wait for a task result before throwing a TimeoutException. /// Default is 5 minutes. /// public TimeSpan ExecutionTimeout { get; set; } = TimeSpan.FromMinutes(5); /// /// Gets or sets the initial delay before attempting to reconnect to a disconnected server. /// Default is 5 seconds. /// public TimeSpan ServerReconnectInitialDelay { get; set; } = TimeSpan.FromSeconds(5); /// /// Gets or sets the maximum delay between server reconnection attempts. /// Default is 60 seconds. /// public TimeSpan ServerReconnectMaxDelay { get; set; } = TimeSpan.FromSeconds(60); /// /// Gets or sets the maximum number of times a failed task can be requeued before failing permanently. /// Default is 3. /// public int MaxTaskRetries { get; set; } = 3; /// /// Gets or sets the maximum number of tasks that can be queued globally before blocking new execute calls. /// Default is 1000. /// public int GlobalQueueCapacity { get; set; } = 1000; }