archive unused / old code
This commit is contained in:
20
_archive/core/examples/Cargo.toml
Normal file
20
_archive/core/examples/Cargo.toml
Normal file
@@ -0,0 +1,20 @@
|
||||
[package]
|
||||
name = "hero_examples"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[[bin]]
|
||||
name = "supervisor_worker_demo"
|
||||
path = "supervisor_worker_demo.rs"
|
||||
|
||||
[dependencies]
|
||||
hero_supervisor = { path = "../supervisor" }
|
||||
hero_job = { path = "../job" }
|
||||
tokio = { version = "1.0", features = ["full"] }
|
||||
redis = { version = "0.25", features = ["tokio-comp"] }
|
||||
serde_json = "1.0"
|
||||
log = "0.4"
|
||||
env_logger = "0.10"
|
||||
colored = "2.0"
|
||||
uuid = { version = "1.0", features = ["v4"] }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
88
_archive/core/examples/supervisor_worker_demo.rs
Normal file
88
_archive/core/examples/supervisor_worker_demo.rs
Normal file
@@ -0,0 +1,88 @@
|
||||
//! Hero Supervisor Worker Demo
|
||||
//!
|
||||
//! This example demonstrates the new Hero Supervisor API with:
|
||||
//! - Synchronous build() method
|
||||
//! - Asynchronous start_workers() method
|
||||
//! - Proper cleanup on program exit
|
||||
//! - Signal handling for graceful shutdown
|
||||
|
||||
use colored::*;
|
||||
use hero_supervisor::{SupervisorBuilder, ScriptType};
|
||||
use std::time::Duration;
|
||||
use tokio::signal;
|
||||
|
||||
async fn run_supervisor_demo() -> Result<(), Box<dyn std::error::Error>> {
|
||||
println!("{}", "🚀 Hero Supervisor Demo - New API".cyan().bold());
|
||||
println!("{}", "Building supervisor synchronously...".yellow());
|
||||
|
||||
// Build supervisor synchronously (no .await needed)
|
||||
let supervisor = SupervisorBuilder::new()
|
||||
.redis_url("redis://127.0.0.1:6379")
|
||||
.osis_worker("/usr/local/bin/osis_worker")
|
||||
.sal_worker("/usr/local/bin/sal_worker")
|
||||
.v_worker("/usr/local/bin/v_worker")
|
||||
.python_worker("/usr/local/bin/python_worker")
|
||||
.worker_env_var("REDIS_URL", "redis://127.0.0.1:6379")
|
||||
.worker_env_var("LOG_LEVEL", "info")
|
||||
.build()?;
|
||||
|
||||
println!("{}", "✅ Supervisor built successfully!".green());
|
||||
println!("{}", "Starting workers asynchronously...".yellow());
|
||||
|
||||
// Start workers asynchronously
|
||||
supervisor.start_workers().await?;
|
||||
|
||||
println!("{}", "✅ All workers started successfully!".green());
|
||||
|
||||
// Demonstrate job creation and execution
|
||||
println!("{}", "\n📋 Creating and running test jobs...".cyan().bold());
|
||||
|
||||
// Create and run a test job
|
||||
println!("📝 Creating and running OSIS job...");
|
||||
|
||||
// Submit and run the job
|
||||
match supervisor.new_job()
|
||||
.script_type(ScriptType::OSIS)
|
||||
.script("println('Hello from OSIS worker!')")
|
||||
.timeout(Duration::from_secs(30))
|
||||
.await_response().await {
|
||||
Ok(result) => {
|
||||
println!("{}", format!("✅ Job completed successfully: {}", result).green());
|
||||
}
|
||||
Err(e) => {
|
||||
println!("{}", format!("❌ Job failed: {}", e).red());
|
||||
}
|
||||
}
|
||||
|
||||
// Wait for interrupt signal
|
||||
println!("{}", "\n⏳ Press Ctrl+C to shutdown gracefully...".yellow());
|
||||
signal::ctrl_c().await?;
|
||||
|
||||
println!("{}", "\n🛑 Shutdown signal received, cleaning up...".yellow().bold());
|
||||
|
||||
// Cleanup workers before exit
|
||||
supervisor.cleanup_and_shutdown().await?;
|
||||
|
||||
println!("{}", "✅ Cleanup completed. Goodbye!".green().bold());
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Initialize logging
|
||||
env_logger::Builder::from_default_env()
|
||||
.filter_level(log::LevelFilter::Info)
|
||||
.init();
|
||||
|
||||
println!("{}", "Hero Supervisor Demo".cyan().bold());
|
||||
println!("{}", "This demo shows the new synchronous build API".yellow());
|
||||
println!();
|
||||
|
||||
// Run the demo
|
||||
if let Err(e) = run_supervisor_demo().await {
|
||||
eprintln!("{}", format!("Demo failed: {}", e).red().bold());
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
Reference in New Issue
Block a user