Crates.io | heartbeat |
lib.rs | heartbeat |
version | 0.0.1 |
source | src |
created_at | 2015-04-13 19:04:11.079575 |
updated_at | 2015-12-11 23:53:29.779383 |
description | A high-performance heartbeat client. |
homepage | |
repository | https://github.com/signal-analytics/nickel.rs |
max_upload_size | |
id | 1861 |
size | 6,857 |
A high-performance heartbeat client to check pulse of TCP servers. It utilizes TCP's connection handshake mechanism without even sending a client payload so it doesn't flood a network with client payloads.
##Example:
extern crate heartbeat;
use std::net::SocketAddr;
use heartbeat::PulseResult;
// a handler to handle the result of a heartbeat pulse
fn do_nothing(res: PulseResult) {
match res {
Ok(addr) => println!("found pulse for {:?}", addr),
Err(addr) => println!("no pulse for {:?}", addr)
}
}
fn main() {
let servers: Vec<SocketAddr> = ...;
let freq_ms: u32 = 5 * 1000;
let client = heartbeat::load(servers, do_nothing, freq_ms).unwrap();
client.start();
}
It is designed to be simple and efficient to embed into your own application.
The TCP servers that you wish to check pulses of are added by specifying them in a TOML configuration file like this:
# Heartbeat.toml
[configuration]
servers = ["127.0.0.1:8080", "127.0.0.1:6767"]
frequency = 5000