All checks were successful
Build and Release / build-and-release (push) Successful in 1m21s
CRITICAL FIX: The previous cached collector architecture still had ZMQ sending in the main event loop, where it could block waiting for RwLock when collectors were writing. This caused the 3-8 second delays you observed. Changes: - Move ZMQ publisher to dedicated std::thread (ZMQ sockets aren't thread-safe) - Use try_read() instead of read() to avoid blocking on write locks - Send previous data if cache is locked by collector - ZMQ now sends every 2s regardless of collector timing - Remove publisher from ZmqHandler (now only handles commands) Architecture: - Collectors: Independent tokio tasks updating shared cache - ZMQ Sender: Dedicated OS thread with its own publisher socket - Main Loop: Only handles commands and notifications This ensures ZMQ transmission is NEVER blocked by slow collectors. Bump version to v0.1.195
23 lines
641 B
TOML
23 lines
641 B
TOML
[package]
|
|
name = "cm-dashboard-agent"
|
|
version = "0.1.195"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
cm-dashboard-shared = { workspace = true }
|
|
tokio = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
chrono = { workspace = true }
|
|
clap = { workspace = true }
|
|
zmq = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
lettre = { workspace = true }
|
|
gethostname = { workspace = true }
|
|
chrono-tz = "0.8"
|
|
toml = { workspace = true }
|
|
async-trait = "0.1"
|
|
reqwest = { version = "0.11", features = ["json", "blocking"] } |