diff options
| author | Paul Buetow <paul@buetow.org> | 2011-05-24 07:10:21 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2011-05-24 07:10:21 +0000 |
| commit | 28ea6c26d639f0e30535765258f0c698ef57b22e (patch) | |
| tree | 6c499498a1a476df7d4ed085976ea380cbdcb249 /lib/PerlDaemon/RunModules.pm | |
| parent | b5920fb74fe0ce472da37dc4d6402392a69d42fa (diff) | |
initial working Time::HiRes interval handling
Diffstat (limited to 'lib/PerlDaemon/RunModules.pm')
| -rw-r--r-- | lib/PerlDaemon/RunModules.pm | 14 |
1 files changed, 9 insertions, 5 deletions
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(); + } } } } |
