mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
udp: new file structure: each worker types is submod of workers mod
This commit is contained in:
parent
2e3f7a4c9f
commit
34f263f6b9
6 changed files with 19 additions and 14 deletions
|
|
@ -1,15 +1,12 @@
|
|||
pub mod common;
|
||||
pub mod config;
|
||||
pub mod handlers;
|
||||
pub mod network;
|
||||
pub mod tasks;
|
||||
pub mod workers;
|
||||
|
||||
use config::Config;
|
||||
|
||||
use std::collections::BTreeMap;
|
||||
use std::sync::{atomic::AtomicUsize, Arc};
|
||||
use std::thread::Builder;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Context;
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
|
|
@ -72,7 +69,7 @@ pub fn run(config: Config) -> ::anyhow::Result<()> {
|
|||
WorkerIndex::RequestWorker(i),
|
||||
);
|
||||
|
||||
handlers::run_request_worker(
|
||||
workers::request::run_request_worker(
|
||||
config,
|
||||
state,
|
||||
request_receiver,
|
||||
|
|
@ -101,7 +98,7 @@ pub fn run(config: Config) -> ::anyhow::Result<()> {
|
|||
WorkerIndex::SocketWorker(i),
|
||||
);
|
||||
|
||||
network::run_socket_worker(
|
||||
workers::socket::run_socket_worker(
|
||||
state,
|
||||
config,
|
||||
i,
|
||||
|
|
@ -127,11 +124,7 @@ pub fn run(config: Config) -> ::anyhow::Result<()> {
|
|||
WorkerIndex::Other,
|
||||
);
|
||||
|
||||
loop {
|
||||
::std::thread::sleep(Duration::from_secs(config.statistics.interval));
|
||||
|
||||
tasks::gather_and_print_statistics(&state, &config);
|
||||
}
|
||||
workers::statistics::run_statistics_worker(config, state);
|
||||
})
|
||||
.with_context(|| "spawn statistics worker")?;
|
||||
}
|
||||
|
|
|
|||
3
aquatic_udp/src/lib/workers/mod.rs
Normal file
3
aquatic_udp/src/lib/workers/mod.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
pub mod request;
|
||||
pub mod socket;
|
||||
pub mod statistics;
|
||||
|
|
@ -1,9 +1,18 @@
|
|||
use std::sync::atomic::{AtomicUsize, Ordering};
|
||||
use std::time::Duration;
|
||||
|
||||
use super::common::*;
|
||||
use crate::common::*;
|
||||
use crate::config::Config;
|
||||
|
||||
pub fn gather_and_print_statistics(state: &State, config: &Config) {
|
||||
pub fn run_statistics_worker(config: Config, state: State) {
|
||||
loop {
|
||||
::std::thread::sleep(Duration::from_secs(config.statistics.interval));
|
||||
|
||||
gather_and_print_statistics(&config, &state);
|
||||
}
|
||||
}
|
||||
|
||||
fn gather_and_print_statistics(config: &Config, state: &State) {
|
||||
let interval = config.statistics.interval;
|
||||
|
||||
let requests_received: f64 = state
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
//! Scrape: 1 873 545 requests/second, 533.75 ns/request
|
||||
//! ```
|
||||
|
||||
use aquatic_udp::handlers::run_request_worker;
|
||||
use aquatic_udp::workers::request::run_request_worker;
|
||||
use crossbeam_channel::unbounded;
|
||||
use num_format::{Locale, ToFormattedString};
|
||||
use rand::{rngs::SmallRng, thread_rng, Rng, SeedableRng};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue