Upgrading axum=0.7

This commit is contained in:
Nicolas Patry 2024-02-02 12:15:32 +01:00
parent 0e97af456a
commit 4c6c39e491
3 changed files with 472 additions and 201 deletions

586
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -16,8 +16,8 @@ path = "src/main.rs"
[dependencies]
async-stream = "0.3.5"
axum = { version = "0.6.20", features = ["json"] }
axum-tracing-opentelemetry = "0.14.1"
axum = { version = "0.7.4", features = ["json"] }
axum-tracing-opentelemetry = "0.16"
text-generation-client = { path = "client" }
clap = { version = "4.4.5", features = ["derive", "env"] }
futures = "0.3.28"
@ -35,12 +35,12 @@ thiserror = "1.0.48"
tokenizers = { version = "0.15.1", features = ["http"] }
tokio = { version = "1.32.0", features = ["rt", "rt-multi-thread", "parking_lot", "signal", "sync"] }
tokio-stream = "0.1.14"
tower-http = { version = "0.4.4", features = ["cors"] }
tower-http = { version = "0.5.1", features = ["cors"] }
tracing = "0.1.37"
tracing-opentelemetry = "0.21.0"
tracing-subscriber = { version = "0.3.17", features = ["json", "env-filter"] }
utoipa = { version = "3.5.0", features = ["axum_extras"] }
utoipa-swagger-ui = { version = "3.1.5", features = ["axum"] }
utoipa = { version = "4.2.0", features = ["axum_extras"] }
utoipa-swagger-ui = { version = "6.0.0", features = ["axum"] }
ngrok = { version = "0.13.1", features = ["axum"], optional = true }
init-tracing-opentelemetry = { version = "0.14.1", features = ["opentelemetry-otlp"] }
minijinja = "1.0.10"

View File

@ -973,46 +973,47 @@ pub async fn run(
if ngrok {
#[cfg(feature = "ngrok")]
{
use ngrok::config::TunnelBuilder;
// use ngrok::config::TunnelBuilder;
let _ = addr;
// let _ = addr;
let authtoken =
ngrok_authtoken.expect("`ngrok-authtoken` must be set when using ngrok tunneling");
// let authtoken =
// ngrok_authtoken.expect("`ngrok-authtoken` must be set when using ngrok tunneling");
let edge = ngrok_edge.expect("`ngrok-edge` must be set when using ngrok tunneling");
// let edge = ngrok_edge.expect("`ngrok-edge` must be set when using ngrok tunneling");
let tunnel = ngrok::Session::builder()
.authtoken(authtoken)
.connect()
.await
.unwrap()
.labeled_tunnel()
.label("edge", edge);
// let tunnel = ngrok::Session::builder()
// .authtoken(authtoken)
// .connect()
// .await
// .unwrap()
// .labeled_tunnel()
// .label("edge", edge);
let listener = tunnel.listen().await.unwrap();
// let listener = tunnel.listen().await.unwrap();
// let router = Router::new()
// .route("/health", get(health))
// .route("/metrics", get(metrics))
// .layer(Extension(health_ext))
// .layer(Extension(prom_handle))
// .into_make_service();
// Run prom metrics and health locally too
tokio::spawn(
axum::Server::bind(&addr)
.serve(
Router::new()
.route("/health", get(health))
.route("/metrics", get(metrics))
.layer(Extension(health_ext))
.layer(Extension(prom_handle))
.into_make_service(),
)
//Wait until all requests are finished to shut down
.with_graceful_shutdown(shutdown_signal()),
);
// // Run prom metrics and health locally too
// let tokio_listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
// axum::serve(tokio_listener, router)
// .with_graceful_shutdown(shutdown_signal())
// .await?;
// axum::serve(listener, app)
// .with_graceful_shutdown(shutdown_signal())
// .await?;
// Run server
axum::Server::builder(listener)
.serve(app.into_make_service())
//Wait until all requests are finished to shut down
.with_graceful_shutdown(shutdown_signal())
.await?;
// axum::Server::builder(listener)
// .serve(app.into_make_service())
// //Wait until all requests are finished to shut down
// .with_graceful_shutdown(shutdown_signal())
// .await?;
}
#[cfg(not(feature = "ngrok"))]
{
@ -1025,11 +1026,17 @@ pub async fn run(
}
} else {
// Run server
axum::Server::bind(&addr)
.serve(app.into_make_service())
// Wait until all requests are finished to shut down
let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
axum::serve(listener, app)
.with_graceful_shutdown(shutdown_signal())
.await?;
// axum::Server::bind(&addr)
// .serve(app.into_make_service())
// // Wait until all requests are finished to shut down
// .with_graceful_shutdown(shutdown_signal())
// .await?;
}
Ok(())
}