chore: enable feature log for client api (#430)

* chore: enable feature log for client api

* chore: fix ci
This commit is contained in:
Nathan.fooo 2024-03-30 15:39:34 +08:00 committed by GitHub
parent ccd11f0b02
commit 0821c052f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 18 additions and 7 deletions

View File

@ -99,7 +99,7 @@ tempfile = "3.9.0"
assert-json-diff = "2.0.2" assert-json-diff = "2.0.2"
scraper = "0.17.1" scraper = "0.17.1"
client-api-test-util = { path = "libs/client-api-test-util" } client-api-test-util = { path = "libs/client-api-test-util" }
client-api = { path = "libs/client-api", features = ["collab-sync", "test_util", "test_fast_sync"] } client-api = { path = "libs/client-api", features = ["collab-sync", "test_util", "sync_verbose_log"] }
opener = "0.6.1" opener = "0.6.1"
image = "0.23.14" image = "0.23.14"
collab-folder = { version = "0.1.0" } collab-folder = { version = "0.1.0" }

View File

@ -66,6 +66,5 @@ again = "0.1.2"
[features] [features]
collab-sync = ["collab", "yrs"] collab-sync = ["collab", "yrs"]
test_util = ["scraper"] test_util = ["scraper"]
test_fast_sync = []
template = ["workspace-template"] template = ["workspace-template"]
ws_verbose_log = [] sync_verbose_log = []

View File

@ -65,6 +65,7 @@ pub struct CollabSink<Sink> {
impl<Sink> Drop for CollabSink<Sink> { impl<Sink> Drop for CollabSink<Sink> {
fn drop(&mut self) { fn drop(&mut self) {
#[cfg(feature = "sync_verbose_log")]
trace!("Drop CollabSink {}", self.object.object_id); trace!("Drop CollabSink {}", self.object.object_id);
let _ = self.notifier.send(SinkSignal::Stop); let _ = self.notifier.send(SinkSignal::Stop);
} }
@ -284,6 +285,7 @@ where
); );
} }
} else { } else {
#[cfg(feature = "sync_verbose_log")]
trace!( trace!(
"{}: pending count:{} ids:{}", "{}: pending count:{} ids:{}",
self.object.object_id, self.object.object_id,
@ -337,6 +339,7 @@ where
self.last_sync.update_timestamp().await; self.last_sync.update_timestamp().await;
match sender.send(messages).await { match sender.send(messages).await {
Ok(_) => { Ok(_) => {
#[cfg(feature = "sync_verbose_log")]
trace!( trace!(
"🔥client sending {} messages {:?}", "🔥client sending {} messages {:?}",
self.object.object_id, self.object.object_id,
@ -402,6 +405,7 @@ where
if cfg!(debug_assertions) { if cfg!(debug_assertions) {
for (msg_id, merged_ids) in merged_ids { for (msg_id, merged_ids) in merged_ids {
#[cfg(feature = "sync_verbose_log")]
trace!( trace!(
"{}: merged {:?} messages into: {:?}", "{}: merged {:?} messages into: {:?}",
self.object.object_id, self.object.object_id,

View File

@ -36,6 +36,7 @@ pub struct ObserveCollab<Sink, Stream> {
impl<Sink, Stream> Drop for ObserveCollab<Sink, Stream> { impl<Sink, Stream> Drop for ObserveCollab<Sink, Stream> {
fn drop(&mut self) { fn drop(&mut self) {
#[cfg(feature = "sync_verbose_log")]
trace!("Drop SyncStream {}", self.object_id); trace!("Drop SyncStream {}", self.object_id);
} }
} }
@ -229,6 +230,7 @@ where
.await .await
{ {
if let Some(lock_guard) = collab.try_lock() { if let Some(lock_guard) = collab.try_lock() {
#[cfg(feature = "sync_verbose_log")]
trace!("Start pull missing updates for {}", object.object_id); trace!("Start pull missing updates for {}", object.object_id);
start_sync(origin.clone(), object, &lock_guard, sink); start_sync(origin.clone(), object, &lock_guard, sink);
} }
@ -321,6 +323,7 @@ pub(crate) fn check_update_contiguous(
seq_num_counter: &Arc<SeqNumCounter>, seq_num_counter: &Arc<SeqNumCounter>,
) -> Result<(), SyncError> { ) -> Result<(), SyncError> {
let prev_seq_num = seq_num_counter.fetch_update(current_seq_num); let prev_seq_num = seq_num_counter.fetch_update(current_seq_num);
#[cfg(feature = "sync_verbose_log")]
trace!( trace!(
"receive {} seq_num, prev:{}, current:{}", "receive {} seq_num, prev:{}, current:{}",
object_id, object_id,

View File

@ -154,6 +154,7 @@ where
let payload = Message::Awareness(update.clone()).encode_v1(); let payload = Message::Awareness(update.clone()).encode_v1();
self.sync_queue.queue_msg(|msg_id| { self.sync_queue.queue_msg(|msg_id| {
let update_sync = UpdateSync::new(origin.clone(), object_id.to_string(), payload, msg_id); let update_sync = UpdateSync::new(origin.clone(), object_id.to_string(), payload, msg_id);
#[cfg(feature = "sync_verbose_log")]
trace!("queue local state: {}", update_sync); trace!("queue local state: {}", update_sync);
ClientCollabMessage::new_update_sync(update_sync) ClientCollabMessage::new_update_sync(update_sync)
}); });

View File

@ -20,6 +20,7 @@ where
} }
pub(crate) fn push_msg(&mut self, msg_id: MsgId, msg: Msg) { pub(crate) fn push_msg(&mut self, msg_id: MsgId, msg: Msg) {
#[cfg(feature = "sync_verbose_log")]
trace!("📩 queue: {}", msg); trace!("📩 queue: {}", msg);
self.queue.push(QueueItem::new(msg, msg_id)); self.queue.push(QueueItem::new(msg, msg_id));
} }

View File

@ -35,6 +35,7 @@ pub struct SyncControl<Sink, Stream> {
impl<Sink, Stream> Drop for SyncControl<Sink, Stream> { impl<Sink, Stream> Drop for SyncControl<Sink, Stream> {
fn drop(&mut self) { fn drop(&mut self) {
#[cfg(feature = "sync_verbose_log")]
trace!("Drop SyncQueue {}", self.object.object_id); trace!("Drop SyncQueue {}", self.object.object_id);
} }
} }
@ -115,11 +116,13 @@ where
} }
pub fn pause(&self) { pub fn pause(&self) {
#[cfg(feature = "sync_verbose_log")]
trace!("pause {} sync", self.object.object_id); trace!("pause {} sync", self.object.object_id);
self.sink.pause(); self.sink.pause();
} }
pub fn resume(&self) { pub fn resume(&self) {
#[cfg(feature = "sync_verbose_log")]
trace!("resume {} sync", self.object.object_id); trace!("resume {} sync", self.object.object_id);
self.sink.resume(); self.sink.resume();
} }

View File

@ -434,6 +434,7 @@ fn handle_collab_message(
if let Some(channels) = collab_channels.read().get(&object_id) { if let Some(channels) = collab_channels.read().get(&object_id) {
for channel in channels.iter() { for channel in channels.iter() {
if let Some(channel) = channel.upgrade() { if let Some(channel) = channel.upgrade() {
#[cfg(feature = "sync_verbose_log")]
trace!("🌐receive server: {}", collab_msg); trace!("🌐receive server: {}", collab_msg);
channel.forward_to_stream(collab_msg.clone()); channel.forward_to_stream(collab_msg.clone());
} }

View File

@ -189,6 +189,7 @@ fn log_message_map(messages_map: &HashMap<String, Vec<ClientCollabMessage>>) {
// Prepend the start sign and append the end sign to the log message // Prepend the start sign and append the end sign to the log message
let log_msg = format!("{}\n{}\n{}", start_sign, log_msg, end_sign); let log_msg = format!("{}\n{}\n{}", start_sign, log_msg, end_sign);
#[cfg(feature = "sync_verbose_log")]
debug!("Aggregate message list:\n{}", log_msg); debug!("Aggregate message list:\n{}", log_msg);
} }
@ -220,10 +221,8 @@ fn calculate_next_tick_duration(
num_init_sync: usize, num_init_sync: usize,
default_interval: Duration, default_interval: Duration,
) -> Duration { ) -> Duration {
if cfg!(feature = "test_fast_sync") { if num_messages == 0 {
Duration::from_secs(1) Duration::from_secs(2)
} else if num_messages == 0 {
Duration::from_secs(4)
} else { } else {
match num_init_sync { match num_init_sync {
0 => default_interval, 0 => default_interval,