From 54c29643900949800f82232cc6492f776cd90861 Mon Sep 17 00:00:00 2001 From: Pedro Melo Date: Fri, 19 Sep 2014 13:53:47 +0100 Subject: [PATCH] Prepare Client.pm to use Lookupd Signed-off-by: Pedro Melo --- lib/AnyEvent/NSQ/Client.pm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/AnyEvent/NSQ/Client.pm b/lib/AnyEvent/NSQ/Client.pm index 19075d2..b40f3f5 100644 --- a/lib/AnyEvent/NSQ/Client.pm +++ b/lib/AnyEvent/NSQ/Client.pm @@ -10,6 +10,7 @@ use AnyEvent; use AnyEvent::Socket (); use Carp 'croak'; use AnyEvent::NSQ::Connection; +use AnyEvent::NSQ::Lookupd; #### Public API @@ -109,7 +110,18 @@ sub _start_nsqd_connections { } ## nsqlookupd support - not there yet -sub _start_lookupd_poolers { } +sub _start_lookupd_poolers { + my ($self) = @_; + + ## FIXME: Given that topic is required, maybe this should move to Reader? + $self->{lookupd_poller} = AnyEvent::NSQ::Lookupd->new( + topic => $self->{topic}, + lookupd_http_addresses => $self->{lookupd_http_addresses}, + + add_nsqd_cb => sub { $self->_start_nsqd_connection($_[2], nsqd_id => $_[1]) }, + drop_nsqd_cb => sub { $self->_drop_nsqd_connection($_[1]) }, + ); +} #### nsqd pool connection management @@ -138,6 +150,11 @@ sub _start_nsqd_connection { return; } +## drop all connections for a specific nsqd +sub _drop_nsqd_connection { + +} + ## return one connection that is connected sub _random_connected_conn { ## FIXME: yeah, Sony-style random going on :)