use crate::core::errors::Errors;
use crate::core::redis::ReidsPubSubAsync;
use crate::core::redis::ReidsPubsubStandaloneAsync;
pub fn create_pubsub_async(
settings: &crate::core::redis::RedisSettings,
) -> Result<ReidsPubSubAsync, Errors> {
if settings.connect_mode.clone().unwrap() == *"standalone" {
return Ok(ReidsPubSubAsync {
standalone_client: Some(create_pubsub_with_standalone_async(settings).unwrap()),
});
}
Err(Errors::GenericError("Not support redis mode".to_string()))
}
fn create_pubsub_with_standalone_async(
settings: &crate::core::redis::RedisSettings,
) -> Result<ReidsPubsubStandaloneAsync, Errors> {
let connection_string = settings.connection_string();
match redis::Client::open(connection_string.clone()) {
Ok(cliet) => {
log::info!(
"RedisPubsubAsync-Standalone: connection_string={}",
connection_string
);
Ok(ReidsPubsubStandaloneAsync { client: cliet })
}
Err(e) => Err(Errors::GenericError(e.to_string())),
}
}