A Actix based client implementation for the NSQ realtime message processing system. Nsq-client it's designed to support by default multiple Readers for Multiple Connections, readers are routed per single connection by a round robin algorithm.
```rust extern crate nsqueue; extern crate actix;
use std::sync::Arc;
use actix::prelude::*;
use nsqueue::{Connection, Msg, Fin, Subscribe, Config};
struct MyReader {
pub conn: Arc
impl Actor for MyReader {
type Context = Context
impl Handler
fn main() { let sys = System::new("consumer"); let config = Config::default().clientid("consumer"); let c = Supervisor::start(|| Connection::new( "test", // <- topic "test", // <- channel "0.0.0.0:4150", // <- nsqd tcp address Some(config), // <- config (Optional) None, // secret for Auth (Optional) Some(2) // <- RDY (Optional default: 1) )); let conn = Arc::new(c); let _ = MyReader{ conn: conn.clone() }.start(); // <- Same thread reader let _ = Arbiter::start(|_| MyReader{ conn: conn }); // <- start another reader in different thread sys.run(); } ```
bash
$ nsqd -verbose
bash
$ RUST_LOG=nsq_client=debug cargo run
bash
$ cargo run
Licensed under * MIT license (see LICENSE or http://opensource.org/licenses/MIT)