AnyEvent-ZabbixSender
view release on metacpan or search on metacpan
ZabbixSender.pm view on Meta::CPAN
%$self = ();
}
sub _wait {
my ($self) = @_;
while (@{ $self->{queue} } || $self->{sending}) {
my $cv = AE::cv;
my $to = AE::timer $self->{linger_time}, 0, $cv;
local $self->{on_clear} = $cv;
$cv->recv;
}
}
=item $zbx->submit ($k, $v[, $clock[, $host]])
Submits a new key-value pair to the zabbix server. If C<$clock> is missing
or C<undef>, then C<AE::now> is used for the event timestamp. If C<$host>
ZabbixSender.pm view on Meta::CPAN
$self->_send;
}
# start sending
sub _send {
my ($self) = @_;
if ($self->{delay}) {
Scalar::Util::weaken $self;
$self->{delay_w} ||= AE::timer $self->{delay}, 0, sub {
delete $self->{delay_w};
$self->{send_immediate} = 1;
$self->_send2 unless $self->{sending}++;
};
} else {
$self->{send_immediate} = 1;
$self->_send2 unless $self->{sending}++;
}
}
ZabbixSender.pm view on Meta::CPAN
}
unless (@{ $self->{queue} }) {
delete $self->{sending};
$self->{on_clear}();
return;
}
my $retry = $self->{retry_min} * 2 ** $self->{retry}++;
$retry = $self->{retry_max} if $retry > $self->{retry_max};
$self->{retry_w} = AE::timer $retry, 0, sub {
delete $self->{retry_w};
$self->_send2;
};
}
=back
=head1 SEE ALSO
L<AnyEvent>.
( run in 1.063 second using v1.01-cache-2.11-cpan-49f99fa48dc )