mod base;
mod job;
mod queue;
mod scheduler;
mod worker;
pub use base::*;
pub use job::*;
pub use queue::*;
pub use scheduler::*;
pub use worker::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum QueueType {
#[default]
Comm,
Getter,
NoWorker,
Single,
}
#[derive(Debug, Clone)]
pub struct QueueConfig {
pub queue_type: QueueType,
pub default_job: job::JobOptions,
pub worker: worker::WorkerConfig,
}
pub mod prelude {
pub use crate::base::BaseQueue;
pub use crate::job::{Job, JobHandler, JobOptions, JobResult, JobStatus};
pub use crate::queue::Queue;
pub use crate::scheduler::Scheduler;
pub use crate::worker::Worker;
pub use crate::{QueueConfig, QueueType};
pub use async_trait::async_trait;
pub use serde::{Deserialize, Serialize};
}
#[derive(Debug, Clone)]
pub struct TaskConfig {
pub redis_url: String,
pub prefix: String,
pub default_retries: u32,
pub default_timeout: u64,
pub concurrency: usize,
}
impl Default for TaskConfig {
fn default() -> Self {
Self {
redis_url: "redis://127.0.0.1:6379".to_string(),
prefix: "cool:task".to_string(),
default_retries: 3,
default_timeout: 60,
concurrency: 4,
}
}
}