Struct axum_server::Handle
source · pub struct Handle { /* private fields */ }
Expand description
A handle for Server
.
Implementations§
source§impl Handle
impl Handle
sourcepub fn new() -> Self
pub fn new() -> Self
Create a new handle.
Examples found in repository?
examples/shutdown.rs (line 16)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
async fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let handle = Handle::new();
// Spawn a task to shutdown server.
tokio::spawn(shutdown(handle.clone()));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.handle(handle)
.serve(app.into_make_service())
.await
.unwrap();
println!("server is shut down");
}
More examples
examples/graceful_shutdown.rs (line 19)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
async fn main() {
let app = Router::new().route("/", get(|| async { "Hello, world!" }));
let handle = Handle::new();
// Spawn a task to gracefully shutdown server.
tokio::spawn(graceful_shutdown(handle.clone()));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!("listening on {}", addr);
axum_server::bind(addr)
.handle(handle)
.serve(app.into_make_service())
.await
.unwrap();
println!("server is shut down");
}
sourcepub fn connection_count(&self) -> usize
pub fn connection_count(&self) -> usize
Get the number of connections.
Examples found in repository?
examples/graceful_shutdown.rs (line 48)
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
async fn graceful_shutdown(handle: Handle) {
// Wait 10 seconds.
sleep(Duration::from_secs(10)).await;
println!("sending graceful shutdown signal");
// Signal the server to shutdown using Handle.
handle.graceful_shutdown(Some(Duration::from_secs(30)));
// Print alive connection count every second.
loop {
sleep(Duration::from_secs(1)).await;
println!("alive connections: {}", handle.connection_count());
}
}
sourcepub fn graceful_shutdown(&self, duration: Option<Duration>)
pub fn graceful_shutdown(&self, duration: Option<Duration>)
Gracefully shutdown the server.
None
means indefinite grace period.
Examples found in repository?
examples/graceful_shutdown.rs (line 42)
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
async fn graceful_shutdown(handle: Handle) {
// Wait 10 seconds.
sleep(Duration::from_secs(10)).await;
println!("sending graceful shutdown signal");
// Signal the server to shutdown using Handle.
handle.graceful_shutdown(Some(Duration::from_secs(30)));
// Print alive connection count every second.
loop {
sleep(Duration::from_secs(1)).await;
println!("alive connections: {}", handle.connection_count());
}
}
sourcepub async fn listening(&self) -> Option<SocketAddr>
pub async fn listening(&self) -> Option<SocketAddr>
Returns local address and port when server starts listening.
Returns None
if server fails to bind.