quantrs2_device/cloud/orchestration/load_balancing/
strategies.rs1use serde::{Deserialize, Serialize};
4use std::time::Duration;
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub enum LoadBalancingStrategy {
9 RoundRobin,
10 WeightedRoundRobin,
11 LeastConnections,
12 LeastResponseTime,
13 IPHash,
14 GeographicProximity,
15 Custom(String),
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct HealthCheckConfig {
21 pub interval: Duration,
23 pub timeout: Duration,
25 pub unhealthy_threshold: usize,
27 pub healthy_threshold: usize,
29 pub check_types: Vec<HealthCheckType>,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35pub enum HealthCheckType {
36 HTTP,
37 HTTPS,
38 TCP,
39 UDP,
40 Custom(String),
41}