use std::time::Duration;
use xecute::{
ModuleDefinition, ProviderDefinition,
jobs::{JobQueue, QueueConfig},
};
use super::job::{__TYPE__Job, handle};
pub struct __TYPE__Module;
impl __TYPE__Module {
pub fn module_name() -> &'static str {
std::any::type_name::<Self>()
}
pub fn provider() -> ProviderDefinition {
let config = QueueConfig::new(64, 4)
.and_then(|config| config.retry(3, Duration::from_millis(250)))
.expect("generated worker configuration is valid");
JobQueue::provider(config, handle)
}
pub fn definition() -> ModuleDefinition {
ModuleDefinition::new(Self::module_name())
.provider(Self::provider())
.export::<JobQueue<__TYPE__Job>>()
}
}