App-RabbitTail
view release on metacpan or search on metacpan
lib/App/RabbitTail.pm view on Meta::CPAN
and $exch_frame->isa('Net::AMQP::Protocol::Exchange::DeclareOk');
return $ch;
}
sub run {
my $self = shift;
my $tail_started = 0;
while (1) {
$self->_clear_cv;
$self->_ch; # Build channel before going into the event loop
$self->tail # Setup all the timers
unless $tail_started++;
$self->_cv->recv; # Enter event loop. We will leave here if channel dies..
}
}
sub tail {
my $self = shift;
my $rkeys = $self->routing_key;
foreach my $fn ($self->filename->flatten) {
my $rk = $rkeys->shift;
lib/App/RabbitTail/FileTailer.pm view on Meta::CPAN
is => 'ro',
default => 10,
);
has _watcher => (
is => 'rw'
);
sub tail {
my ($self) = @_;
$self->_watcher(AnyEvent->timer(
after => $self->_sleep_interval,
cb => sub {
if ( !$self->_read_one_line ) {
if (!$self->_has_next_backoff) {
$self->_next_backoff($self->backoff_increment);
}
$self->_sleep_interval($self->_sleep_interval + $self->_next_backoff);
if ($self->_sleep_interval > $self->max_sleep) {
$self->_sleep_interval($self->max_sleep);
$self->_next_backoff(0);
( run in 1.865 second using v1.01-cache-2.11-cpan-49f99fa48dc )