Skip to main content

Crate simple_jobs

Crate simple_jobs 

Source
Expand description

§Very simple persistent jobs

A simple wrapper for Tokio tasks, where the tasks are saved to a backend of choice, and they can be queried for their status.

As an example, the crate provides the implementation for saving tasks to the filesystem.

§Defining the backend

The trait Job requires the functions Job::save and Job::load that save and restore the struct JobInfo.

§Using the FSJob implementation

The struct FSJob implements the trait Job by saving and restoring the job information from the filesystem. Each job gets a unique file, constructed from the unique job id.

§Example:

async fn example() -> std::io::Result<()> {
    let job: FSJob<u16, MyError> = FSJob::new("/tmp".into());
    let id = job.submit(|id, job| async move {
        Ok(0u16)
    })?;
    let info = job.load(id)?;
    println!("Job status: {:?}", info.status);
    Ok(())
}

Re-exports§

pub use self::fs_job::FSJob;

Modules§

fs_job

Structs§

JobInfo
Metadata for a job.

Enums§

JobStatus
The status value for a job.

Traits§

Job
A job.