[router] refactor router and worker management 3/n (#10727)
This commit is contained in:
@@ -8,7 +8,7 @@ use crate::grpc::SglangSchedulerClient;
|
||||
use crate::metrics::RouterMetrics;
|
||||
use crate::policies::{LoadBalancingPolicy, PolicyRegistry};
|
||||
use crate::reasoning_parser::ParserFactory;
|
||||
use crate::routers::{RouterTrait, WorkerManagement};
|
||||
use crate::routers::RouterTrait;
|
||||
use crate::tokenizer::traits::Tokenizer;
|
||||
use crate::tool_parser::ParserRegistry;
|
||||
use async_trait::async_trait;
|
||||
@@ -350,42 +350,3 @@ impl RouterTrait for GrpcPDRouter {
|
||||
(StatusCode::SERVICE_UNAVAILABLE).into_response()
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl WorkerManagement for GrpcPDRouter {
|
||||
async fn add_worker(
|
||||
&self,
|
||||
_worker_url: &str,
|
||||
_api_key: &Option<String>,
|
||||
) -> Result<String, String> {
|
||||
Err("Not implemented".to_string())
|
||||
}
|
||||
|
||||
fn remove_worker(&self, _worker_url: &str) {}
|
||||
|
||||
fn get_worker_urls(&self) -> Vec<String> {
|
||||
let mut urls = Vec::new();
|
||||
|
||||
// Get gRPC prefill worker URLs only
|
||||
let prefill_workers = self.worker_registry.get_workers_filtered(
|
||||
None,
|
||||
Some(WorkerType::Prefill {
|
||||
bootstrap_port: None,
|
||||
}),
|
||||
Some(crate::core::ConnectionMode::Grpc { port: None }),
|
||||
false,
|
||||
);
|
||||
urls.extend(prefill_workers.iter().map(|w| w.url().to_string()));
|
||||
|
||||
// Get gRPC decode worker URLs only
|
||||
let decode_workers = self.worker_registry.get_workers_filtered(
|
||||
None,
|
||||
Some(WorkerType::Decode),
|
||||
Some(crate::core::ConnectionMode::Grpc { port: None }),
|
||||
false,
|
||||
);
|
||||
urls.extend(decode_workers.iter().map(|w| w.url().to_string()));
|
||||
|
||||
urls
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ use crate::grpc::SglangSchedulerClient;
|
||||
use crate::metrics::RouterMetrics;
|
||||
use crate::policies::{LoadBalancingPolicy, PolicyRegistry};
|
||||
use crate::reasoning_parser::ParserFactory;
|
||||
use crate::routers::{RouterTrait, WorkerManagement};
|
||||
use crate::routers::RouterTrait;
|
||||
use crate::tokenizer::traits::Tokenizer;
|
||||
use crate::tool_parser::ParserRegistry;
|
||||
use async_trait::async_trait;
|
||||
@@ -279,29 +279,3 @@ impl RouterTrait for GrpcRouter {
|
||||
(StatusCode::SERVICE_UNAVAILABLE).into_response()
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl WorkerManagement for GrpcRouter {
|
||||
async fn add_worker(
|
||||
&self,
|
||||
_worker_url: &str,
|
||||
_api_key: &Option<String>,
|
||||
) -> Result<String, String> {
|
||||
Err("Not implemented".to_string())
|
||||
}
|
||||
|
||||
fn remove_worker(&self, _worker_url: &str) {}
|
||||
|
||||
fn get_worker_urls(&self) -> Vec<String> {
|
||||
self.worker_registry
|
||||
.get_workers_filtered(
|
||||
None, // any model
|
||||
Some(WorkerType::Regular),
|
||||
Some(crate::core::ConnectionMode::Grpc { port: None }),
|
||||
false, // include all workers
|
||||
)
|
||||
.iter()
|
||||
.map(|w| w.url().to_string())
|
||||
.collect()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user