This is an automated email from the ASF dual-hosted git repository.

xuehuilang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shenyu-client-rust.git


The following commit(s) were added to refs/heads/main by this push:
     new 892d824  Update README.md
892d824 is described below

commit 892d8247d10675f9037a55a16858fcbc912b0796
Author: DamonXue <damonx...@gmail.com>
AuthorDate: Tue Oct 1 20:47:32 2024 +0800

    Update README.md
---
 README.md | 36 ++++++++++++++++++++++++++----------
 1 file changed, 26 insertions(+), 10 deletions(-)

diff --git a/README.md b/README.md
index f2babdb..58178b6 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,9 @@ use axum::{routing::get, Router};
 use shenyu_client_rust::axum_impl::ShenYuRouter;
 use shenyu_client_rust::config::ShenYuConfig;
 use shenyu_client_rust::{core::ShenyuClient, IRouter};
-use tokio::signal;
+
+mod ci;
+use crate::ci::_CI_CTRL_C;
 
 async fn health_handler() -> &'static str {
     "OK"
@@ -42,35 +44,44 @@ async fn create_user_handler() -> &'static str {
 
 #[tokio::main]
 async fn main() {
+    // Spawn a thread to listen for Ctrl-C events and shutdown the server
+    std::thread::spawn(_CI_CTRL_C);
+    // Initialize tracing
+    tracing_subscriber::fmt::init();
+
     let app = ShenYuRouter::<()>::new("shenyu_client_app")
         .nest("/api", ShenYuRouter::new("api"))
-        .route("/health", get(health_handler))
-        .route("/users", post(create_user_handler));
+        .route("/health", "get", get(health_handler))
+        .route("/users", "post", post(create_user_handler));
     let config = ShenYuConfig::from_yaml_file("examples/config.yml").unwrap();
-    let client = ShenyuClient::from(config, app.app_name(), app.uri_infos(), 
3000)
-        .await
-        .unwrap();
+    let client = ShenyuClient::from(config, app.app_name(), app.uri_infos(), 
3000).unwrap();
 
     let axum_app: Router = app.into();
-    client.register().await.expect("TODO: panic message");
+    client.register().expect("TODO: panic message");
 
     // Start Axum server
     let listener = 
tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
     axum::serve(listener, axum_app)
         .with_graceful_shutdown(async move {
-            signal::ctrl_c().await.expect("failed to listen for event");
-            client.offline_register().await;
+            tokio::signal::ctrl_c()
+                .await
+                .expect("failed to listen for event");
+            client.offline_register();
         })
         .await
         .unwrap();
 }
+
 ```
 ```rust
 #![cfg(feature = "actix-web")]
 use actix_web::{middleware, App, HttpServer, Responder};
 use shenyu_client_rust::actix_web_impl::ShenYuRouter;
 use shenyu_client_rust::config::ShenYuConfig;
-use shenyu_client_rust::{core::ShenyuClient, register_once, shenyu_router, 
IRouter};
+use shenyu_client_rust::{register_once, shenyu_router};
+
+mod ci;
+use crate::ci::_CI_CTRL_C;
 
 async fn health_handler() -> impl Responder {
     "OK"
@@ -86,6 +97,11 @@ async fn index() -> impl Responder {
 
 #[actix_web::main]
 async fn main() -> std::io::Result<()> {
+    // Spawn a thread to listen for Ctrl-C events and shutdown the server
+    std::thread::spawn(_CI_CTRL_C);
+    // Initialize tracing
+    tracing_subscriber::fmt::init();
+
     HttpServer::new(move || {
         let mut router = ShenYuRouter::new("shenyu_client_app");
         let mut app = App::new().wrap(middleware::Logger::default());

Reply via email to