feat: improve webhook server and run script integration

- Enhance webhook example with proper shutdown handling using tokio::select!
- Update run.sh to automatically start webhook server alongside main service
- Add event notification configuration to run.sh using environment variables
- Set proper port bindings to ensure webhook server starts on port 3000
- Improve console output for better debugging experience
- Fix race condition during service startup and shutdown

This change ensures proper integration between the webhook server and
the main rustfs service, providing a seamless development experience
with automatic service discovery and clean termination.
This commit is contained in:
houseme
2025-04-22 21:40:20 +08:00
parent 4f347a92c1
commit c8ab89292e
3 changed files with 48 additions and 2 deletions
+13 -1
View File
@@ -8,7 +8,19 @@ async fn main() {
let app = Router::new().route("/webhook", post(receive_webhook));
// 启动服务器
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
axum::serve(listener, app).await.unwrap();
println!("Server running on http://0.0.0.0:3000");
// 创建关闭信号处理
tokio::select! {
result = axum::serve(listener, app) => {
if let Err(e) = result {
eprintln!("Server error: {}", e);
}
}
_ = tokio::signal::ctrl_c() => {
println!("Shutting down server...");
}
}
}
async fn receive_webhook(Json(payload): Json<Value>) -> StatusCode {