mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
aquatic: improve naming of socket workers, request workers
This commit is contained in:
parent
f8713c09c1
commit
140aa4b75d
4 changed files with 23 additions and 8 deletions
|
|
@ -5,9 +5,13 @@ use serde::{Serialize, Deserialize};
|
||||||
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
/// Spawn this number of threads for workers
|
/// Socket workers receive requests from the socket, parse them and send
|
||||||
|
/// them on to the request workers. They then recieve responses from the
|
||||||
|
/// request workers, encode them and send them back over the socket.
|
||||||
pub socket_workers: usize,
|
pub socket_workers: usize,
|
||||||
pub response_workers: usize,
|
/// Request workers receive a number of requests from socket workers,
|
||||||
|
/// generate responses and send them back to the socket workers.
|
||||||
|
pub request_workers: usize,
|
||||||
pub network: NetworkConfig,
|
pub network: NetworkConfig,
|
||||||
pub handlers: HandlerConfig,
|
pub handlers: HandlerConfig,
|
||||||
pub statistics: StatisticsConfig,
|
pub statistics: StatisticsConfig,
|
||||||
|
|
@ -62,7 +66,7 @@ impl Default for Config {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
socket_workers: 1,
|
socket_workers: 1,
|
||||||
response_workers: 1,
|
request_workers: 1,
|
||||||
network: NetworkConfig::default(),
|
network: NetworkConfig::default(),
|
||||||
handlers: HandlerConfig::default(),
|
handlers: HandlerConfig::default(),
|
||||||
statistics: StatisticsConfig::default(),
|
statistics: StatisticsConfig::default(),
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ use crate::common::*;
|
||||||
use crate::config::Config;
|
use crate::config::Config;
|
||||||
|
|
||||||
|
|
||||||
pub fn handle(
|
pub fn run_request_worker(
|
||||||
state: State,
|
state: State,
|
||||||
config: Config,
|
config: Config,
|
||||||
request_receiver: Receiver<(Request, SocketAddr)>,
|
request_receiver: Receiver<(Request, SocketAddr)>,
|
||||||
|
|
|
||||||
|
|
@ -18,14 +18,19 @@ pub fn run(config: Config){
|
||||||
let (request_sender, request_receiver) = unbounded();
|
let (request_sender, request_receiver) = unbounded();
|
||||||
let (response_sender, response_receiver) = unbounded();
|
let (response_sender, response_receiver) = unbounded();
|
||||||
|
|
||||||
for _ in 0..config.response_workers {
|
for _ in 0..config.request_workers {
|
||||||
let state = state.clone();
|
let state = state.clone();
|
||||||
let config = config.clone();
|
let config = config.clone();
|
||||||
let request_receiver = request_receiver.clone();
|
let request_receiver = request_receiver.clone();
|
||||||
let response_sender = response_sender.clone();
|
let response_sender = response_sender.clone();
|
||||||
|
|
||||||
::std::thread::spawn(move || {
|
::std::thread::spawn(move || {
|
||||||
handlers::handle(state, config, request_receiver, response_sender);
|
handlers::run_request_worker(
|
||||||
|
state,
|
||||||
|
config,
|
||||||
|
request_receiver,
|
||||||
|
response_sender
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -36,7 +41,13 @@ pub fn run(config: Config){
|
||||||
let response_receiver = response_receiver.clone();
|
let response_receiver = response_receiver.clone();
|
||||||
|
|
||||||
::std::thread::spawn(move || {
|
::std::thread::spawn(move || {
|
||||||
network::run_event_loop(state, config, i, request_sender, response_receiver);
|
network::run_socket_worker(
|
||||||
|
state,
|
||||||
|
config,
|
||||||
|
i,
|
||||||
|
request_sender,
|
||||||
|
response_receiver
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ use crate::common::*;
|
||||||
use crate::config::Config;
|
use crate::config::Config;
|
||||||
|
|
||||||
|
|
||||||
pub fn run_event_loop(
|
pub fn run_socket_worker(
|
||||||
state: State,
|
state: State,
|
||||||
config: Config,
|
config: Config,
|
||||||
token_num: usize,
|
token_num: usize,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue