AnyEvent-RipeRedis-Cluster

 view release on metacpan or  search on metacpan

examples/example.pl  view on Meta::CPAN

  on_node_error => sub {
    my $err  = shift;
    my $host = shift;
    my $port = shift;

    warn "$host:$port: " . $err->message . "\n";
  },
);

my $cv = AE::cv;
my $timer;

$cluster->get( '__last__',
  sub {
    my $num = shift || 0;
    my $err = shift;

    if ( defined $err ) {
      warn $err->message . "\n";
      $cv->send;

      return;
    }

    $timer = AE::timer( 0, 0.1,
      sub {
        set_get( $num++ );
      }
    );
  }
);

my $on_signal = sub {
  print "Stopped\n";
  $cv->send;

lib/AnyEvent/RipeRedis/Cluster.pm  view on Meta::CPAN

    }
  }

  return crc16($hashtag) % MAX_SLOTS;
}

sub _init {
  my $self = shift;

  $self->{_init_state} = S_IN_PROGRESS;
  undef $self->{_refresh_timer};

  weaken($self);

  $self->_discover_cluster(
    sub {
      my $err = $_[1];

      if ( defined $err ) {
        $self->{_init_state} = S_NEED_DO;

lib/AnyEvent/RipeRedis/Cluster.pm  view on Meta::CPAN


        return;
      }

      $self->{_init_state} = S_DONE;

      $self->{_ready} = 1;
      $self->_process_input_queue;

      if ( $self->{refresh_interval} > 0 ) {
        $self->{_refresh_timer} = AE::timer(
          $self->{refresh_interval}, 0,
          sub {
            $self->{_init_state} = S_NEED_DO;
            $self->{_ready}      = 0;
          }
        );
      }
    }
  );

lib/AnyEvent/RipeRedis/Cluster.pm  view on Meta::CPAN


sub _reset_internals {
  my $self = shift;

  $self->{_nodes_pool}    = undef;
  $self->{_nodes}         = undef;
  $self->{_master_nodes}  = undef;
  $self->{_slots}         = undef;
  $self->{_commands}      = undef;
  $self->{_init_state}    = S_NEED_DO;
  $self->{_refresh_timer} = undef;
  $self->{_ready}         = 0;

  return;
}

sub _abort {
  my $self = shift;
  my $err  = shift;

  my @queued_commands = $self->_queued_commands;

t/test_helper.pl  view on Meta::CPAN

  );
}

sub ev_loop {
  my $sub = shift;

  my $cv = AE::cv;

  $sub->($cv);

  my $timer = AE::timer( 10, 0,
    sub {
      diag( 'Emergency exit from event loop.' );
      $cv->send;
    }
  );

  $cv->recv;

  return;
}



( run in 1.143 second using v1.01-cache-2.11-cpan-49f99fa48dc )