Skip to main content

sockudo_queue/
lib.rs

1#[cfg(feature = "google-pubsub")]
2pub mod google_pubsub_queue_manager;
3#[cfg(feature = "kafka")]
4pub mod kafka_queue_manager;
5pub mod manager;
6pub mod memory_queue_manager;
7#[cfg(feature = "nats")]
8pub mod nats_queue_manager;
9#[cfg(feature = "pulsar")]
10pub mod pulsar_queue_manager;
11#[cfg(feature = "rabbitmq")]
12pub mod rabbitmq_queue_manager;
13#[cfg(feature = "redis-cluster")]
14pub mod redis_cluster_queue_manager;
15#[cfg(feature = "redis")]
16pub mod redis_queue_manager;
17#[cfg(feature = "sns")]
18pub mod sns_queue_manager;
19#[cfg(feature = "sqs")]
20pub mod sqs_queue_manager;
21
22#[cfg(feature = "google-pubsub")]
23pub use google_pubsub_queue_manager::GooglePubSubQueueManager;
24#[cfg(feature = "kafka")]
25pub use kafka_queue_manager::KafkaQueueManager;
26pub use manager::{QueueManager, QueueManagerFactory};
27pub use memory_queue_manager::MemoryQueueManager;
28#[cfg(feature = "nats")]
29pub use nats_queue_manager::NatsJetStreamQueueManager;
30#[cfg(feature = "pulsar")]
31pub use pulsar_queue_manager::PulsarQueueManager;
32#[cfg(feature = "rabbitmq")]
33pub use rabbitmq_queue_manager::RabbitMqQueueManager;
34#[cfg(feature = "redis-cluster")]
35pub use redis_cluster_queue_manager::RedisClusterQueueManager;
36#[cfg(feature = "redis")]
37pub use redis_queue_manager::RedisQueueManager;
38#[cfg(feature = "sns")]
39pub use sns_queue_manager::SnsQueueManager;
40#[cfg(feature = "sqs")]
41pub use sqs_queue_manager::SqsQueueManager;
42
43use sockudo_core::error::Result;
44use sockudo_core::webhook_types::JobData;
45use std::future::Future;
46use std::pin::Pin;
47use std::sync::Arc;
48
49/// Type alias for the Arc'd async job processor callback used across queue managers
50pub(crate) type ArcJobProcessorFn = Arc<
51    Box<
52        dyn Fn(JobData) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send + Sync + 'static,
53    >,
54>;