1pub mod manager;
2pub mod memory_queue_manager;
3#[cfg(feature = "redis-cluster")]
4pub mod redis_cluster_queue_manager;
5#[cfg(feature = "redis")]
6pub mod redis_queue_manager;
7#[cfg(feature = "sns")]
8pub mod sns_queue_manager;
9#[cfg(feature = "sqs")]
10pub mod sqs_queue_manager;
11
12pub use manager::{QueueManager, QueueManagerFactory};
13pub use memory_queue_manager::MemoryQueueManager;
14#[cfg(feature = "redis-cluster")]
15pub use redis_cluster_queue_manager::RedisClusterQueueManager;
16#[cfg(feature = "redis")]
17pub use redis_queue_manager::RedisQueueManager;
18#[cfg(feature = "sns")]
19pub use sns_queue_manager::SnsQueueManager;
20#[cfg(feature = "sqs")]
21pub use sqs_queue_manager::SqsQueueManager;
22
23use sockudo_core::error::Result;
24use sockudo_core::webhook_types::JobData;
25use std::future::Future;
26use std::pin::Pin;
27use std::sync::Arc;
28
29pub(crate) type ArcJobProcessorFn = Arc<
31 Box<
32 dyn Fn(JobData) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send + Sync + 'static,
33 >,
34>;