From 28ea6c26d639f0e30535765258f0c698ef57b22e Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 24 May 2011 07:10:21 +0000 Subject: initial working Time::HiRes interval handling --- lib/PerlDaemon/RunModules.pm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'lib/PerlDaemon/RunModules.pm') diff --git a/lib/PerlDaemon/RunModules.pm b/lib/PerlDaemon/RunModules.pm index 4420cd7..426bc83 100644 --- a/lib/PerlDaemon/RunModules.pm +++ b/lib/PerlDaemon/RunModules.pm @@ -25,7 +25,7 @@ sub new ($$) { # TODO: Add eval catching jost un case for errors $loadedmodules{$name} = eval "${name}->new(\$conf)"; $scheduler{$name}{lastrun} = [0,0]; - $scheduler{$name}{interval} = $conf->{'modules.runinterval'}; + $scheduler{$name}{interval} = $conf->{'daemon.modules.runinterval'}; } } else { @@ -50,10 +50,14 @@ sub do ($) { } else { while (my ($k, $v) = each %$modules) { my $now = [gettimeofday]; - $logger->logmsg(tv_interval($now, $scheduler->{$k}{lastrun})); - $logger->logmsg("Triggering $k"); - $scheduler->{$k}{lastrun} = $now; - #$v->do(); + my $timediff = tv_interval($scheduler->{$k}{lastrun}, $now); + my $interval = $scheduler->{$k}{interval}; + + if ($timediff >= $interval) { + $logger->logmsg("Triggering $k (last run before ${timediff}s ; wanted interval: ${interval}s)"); + $scheduler->{$k}{lastrun} = $now; + $v->do(); + } } } } -- cgit v1.2.3