Expand description
§Axum Background Tasks
Production-ready background task system for Axum applications.
§Quick Start
use axum::{Router, routing::post};
use axum_background_tasks::{AppTasks, Task, TaskResult, admin_routes, HasTasks};
use serde::{Serialize, Deserialize};
#[derive(Task, Serialize, Deserialize)]
#[task(description = "Processing data", retry = true)]
struct DataProcessing {
data_id: String,
}
impl DataProcessing {
pub async fn execute(&self) -> TaskResult {
// Your task logic here
TaskResult::Success("autosave data".to_string())
}
}
#[derive(HasTasks)]
struct AppState {
tasks: AppTasks,
}
#[tokio::main]
async fn main() {
let app_state = AppState {
tasks: AppTasks::new(),
};
let app = Router::new()
.route("/process", post(process_handler))
.nest("/admin", admin_routes::<AppState>())
.with_state(app_state);
// Start workers and server
}Re-exports§
pub use inventory;
Structs§
- AppTasks
- Cached
JobResult - Cancellation
Token - A token which can be used to signal a cancellation request to one or more tasks.
- Health
Status - JobMetrics
- Task
Metrics - Task
Queue Error - Task
Registration - Task
State