taskflow-rs 0.1.1

A high-performance, async-first task orchestration framework for Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use crate::error::Result;
use crate::task::{Task, TaskStatus};
use async_trait::async_trait;

#[async_trait]
pub trait TaskStorage: Send + Sync {
    async fn save_task(&self, task: &Task) -> Result<()>;
    async fn get_task(&self, task_id: &str) -> Result<Option<Task>>;
    async fn update_task_status(&self, task_id: &str, status: TaskStatus) -> Result<()>;
    async fn list_tasks_by_status(&self, status: TaskStatus) -> Result<Vec<Task>>;
    async fn list_tasks_by_worker(&self, worker_id: &str) -> Result<Vec<Task>>;
    async fn delete_task(&self, task_id: &str) -> Result<()>;
    async fn get_pending_tasks(&self, limit: usize) -> Result<Vec<Task>>;
    async fn get_tasks_by_tags(&self, tags: &[String]) -> Result<Vec<Task>>;
}