add a long heartbeat for slower listeners

This commit is contained in:
41666 2022-11-28 00:24:41 -05:00
parent 3c6b89b152
commit acef78cbef

View file

@ -4,7 +4,10 @@ use lazy_static::lazy_static;
use redis::Commands; use redis::Commands;
use serde::Deserialize; use serde::Deserialize;
use serde_json::json; use serde_json::json;
use std::{env, time::SystemTime}; use std::{
env,
time::{Duration, SystemTime},
};
use tokio_tungstenite::{connect_async, tungstenite::Message}; use tokio_tungstenite::{connect_async, tungstenite::Message};
mod translators; mod translators;
@ -239,6 +242,18 @@ struct Payload {
payload: Event, payload: Event,
} }
/// Send a longer heartbeat in case this is PS4EU and gets like one event per hour
async fn heartbeat() {
let mut interval = tokio::time::interval(Duration::from_secs(150));
loop {
interval.tick().await;
let mut con = REDIS_CLIENT.get_connection().unwrap();
let role: String = ROLE.parse().unwrap();
let heartbeat_key = format!("heartbeat:{}:{}", PAIR.to_string(), role);
let _: () = con.set_ex(heartbeat_key, "1", 300).unwrap();
}
}
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
let addr: String = WS_ADDR.to_string(); let addr: String = WS_ADDR.to_string();
@ -290,5 +305,7 @@ async fn main() {
_ = fused_writer => {} _ = fused_writer => {}
} }
tokio::spawn(heartbeat());
init.await.unwrap(); init.await.unwrap();
} }