App-MultiModule-Tasks-Heartbeat
view release on metacpan or search on metacpan
};
alarm 0;
ok($message, 'properly received first message');
is($message->{hb_instance}, 'servers.whatever.check_runner', 'hb_instance is correctly "servers.whatever.check_runner"');
is($message->{foo}, 'bar', 'foo is correctly set to "bar"');
ok($message->{hearbeat_last_change_ts_span}, 'correctly received non-zero "hearbeat_last_change_ts_span"');
ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} > 1)), '"hearbeat_last_change_ts_span" is correctly greater than 1');
ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} < 10)), '"hearbeat_last_change_ts_span" is correctly less than 10');
}
#send the same thing, which should not reset the timer
IPC::Transit::send(qname => 'Heartbeat', message => {
inform_instance => 'servers.whatever.check_runner',
status => 'OK',
stdout => 'returned OK',
is_std_heartbeat_check => 1,
});
{ #these messages should not have a reset timer
my $message;
eval {
local $SIG{ALRM} = sub { die "timed out\n"; };
alarm 5;
while($message = IPC::Transit::receive(qname => 'test_out')) {
#yup
}
};
alarm 0;
ok($message, 'properly received first message');
is($message->{hb_instance}, 'servers.whatever.check_runner', 'hb_instance is correctly "servers.whatever.check_runner"');
is($message->{foo}, 'bar', 'foo is correctly set to "bar"');
ok($message->{hearbeat_last_change_ts_span}, 'correctly received non-zero "hearbeat_last_change_ts_span"');
ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} > 6)), '"hearbeat_last_change_ts_span" is correctly greater than 6');
ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} < 20)), '"hearbeat_last_change_ts_span" is correctly less than 20');
}
#send the different thing, which should reset the timer
IPC::Transit::send(qname => 'Heartbeat', message => {
inform_instance => 'servers.whatever.check_runner',
status => 'CRIT',
stdout => 'returned CRIT',
is_std_heartbeat_check => 1,
});
{ #these messages should have a reset timer
my $message;
eval {
local $SIG{ALRM} = sub { die "timed out\n"; };
alarm 5;
while($message = IPC::Transit::receive(qname => 'test_out')) {
#yup
}
};
alarm 0;
ok($message, 'properly received first message');
( run in 0.951 second using v1.01-cache-2.11-cpan-49f99fa48dc )