feat: Add retry for signal socket connection
This commit is contained in:
parent
a13272684d
commit
a98da9d47c
1 changed files with 15 additions and 3 deletions
18
src/main.rs
18
src/main.rs
|
@ -9,6 +9,8 @@ use irc::client::prelude::*;
|
|||
use irc::client::ClientStream;
|
||||
use jsonrpsee::core::client::{Subscription, SubscriptionClientT};
|
||||
use serde_json::Value;
|
||||
use tokio::time::sleep;
|
||||
use core::time::Duration;
|
||||
use transform::Bridge;
|
||||
use {log, pretty_env_logger};
|
||||
|
||||
|
@ -46,10 +48,20 @@ async fn main() -> Result<(), String> {
|
|||
};
|
||||
let init_signal = async {
|
||||
log::debug!("Initializing Signal");
|
||||
let signal_client = (async {
|
||||
for i in 0..10 {
|
||||
match jsonrpc::connect_unix(&config.signal.socket).await {
|
||||
Ok(client) => {
|
||||
return Ok(client);
|
||||
}, Err(e) => {
|
||||
log::info!("failed attempt {} connect to signal-cli socket: {:?}. Retrying", i, e);
|
||||
},
|
||||
}
|
||||
sleep(Duration::from_secs(1)).await;
|
||||
};
|
||||
return Err("Trying too many times to open socket");
|
||||
|
||||
let signal_client = jsonrpc::connect_unix(config.signal.socket)
|
||||
.await
|
||||
.map_err(|e| format!("failed to connect to signal socket: {e}"))?;
|
||||
}).await.map_err(|e| format!("failed to connect to signal socket: {e}"))?;
|
||||
let signal_stream = signal_client
|
||||
.subscribe_receive(None)
|
||||
.await
|
||||
|
|
Loading…
Reference in a new issue