From d242790f27e2d5a28ec2546b77d9573413ee1269 Mon Sep 17 00:00:00 2001 From: Leon Hartley Date: Sat, 20 Jan 2024 17:17:49 +0000 Subject: [PATCH] add logging + fix build --- coerce/src/remote/cluster/singleton/mod.rs | 8 +++++--- coerce/src/remote/cluster/singleton/proxy/mod.rs | 4 ++-- coerce/src/remote/cluster/singleton/proxy/send.rs | 10 +++++++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/coerce/src/remote/cluster/singleton/mod.rs b/coerce/src/remote/cluster/singleton/mod.rs index 481871d..9cf2d34 100644 --- a/coerce/src/remote/cluster/singleton/mod.rs +++ b/coerce/src/remote/cluster/singleton/mod.rs @@ -24,6 +24,7 @@ pub struct SingletonBuilder { factory: Option, singleton_id: Option, manager_id: Option, + proxy_id: Option, node_selector: NodeSelector, system: RemoteActorSystem, } @@ -34,7 +35,8 @@ impl SingletonBuilder { system, factory: None, singleton_id: Some(F::Actor::type_name().into_actor_id()), - manager_id: Some(Manager::::type_name().into_actor_id()), + manager_id: Some(format!("singleton-manager<{}>", F::Actor::type_name()).into_actor_id()), + proxy_id: Some(format!("singleton-proxy<{}>", F::Actor::type_name()).into_actor_id()), node_selector: NodeSelector::All, } } @@ -49,10 +51,10 @@ impl SingletonBuilder { let node_id = self.system.node_id(); let base_manager_id = self.manager_id.expect("manager actor id"); + let base_proxy_id = self.proxy_id.expect("proxy actor id"); let manager_actor_id = format!("{}-{}", &base_manager_id, node_id).to_actor_id(); - - let proxy_actor_id = format!("{}-{}-proxy", &base_manager_id, node_id).to_actor_id(); + let proxy_actor_id = format!("{}-{}", &base_proxy_id, node_id).to_actor_id(); let singleton_actor_id = self.singleton_id.expect("singleton actor id"); let actor_system = self.system.actor_system().clone(); diff --git a/coerce/src/remote/cluster/singleton/proxy/mod.rs b/coerce/src/remote/cluster/singleton/proxy/mod.rs index e482e8b..b27222e 100644 --- a/coerce/src/remote/cluster/singleton/proxy/mod.rs +++ b/coerce/src/remote/cluster/singleton/proxy/mod.rs @@ -6,7 +6,7 @@ use std::collections::VecDeque; pub mod send; -pub enum ProxyState { +pub enum ProxyState { Buffered { request_queue: VecDeque>>, }, @@ -45,7 +45,7 @@ pub struct SingletonStarted { pub struct SingletonStopping {} -impl Message for SingletonStarted { +impl Message for SingletonStarted { type Result = (); } diff --git a/coerce/src/remote/cluster/singleton/proxy/send.rs b/coerce/src/remote/cluster/singleton/proxy/send.rs index f18daa4..750aa74 100644 --- a/coerce/src/remote/cluster/singleton/proxy/send.rs +++ b/coerce/src/remote/cluster/singleton/proxy/send.rs @@ -20,7 +20,9 @@ impl Send { tokio::spawn(async move { let res = actor.send(message).await; match res { - Ok(r) => result_channel.send(r), + Ok(r) => { + let _ = result_channel.send(r); + } Err(_) => {} } }); @@ -53,10 +55,16 @@ where match &mut self.state { ProxyState::Buffered { request_queue } => { request_queue.push_back(Box::new(message)); + debug!( + "singleton proxy buffered message (msg_type={}, total_buffered={})", + M::type_name(), + request_queue.len() + ); } ProxyState::Active { actor_ref } => { message.deliver(actor_ref.clone()); + debug!("singleton proxy sent message (msg_type={})", M::type_name()); } } }