summaryrefslogtreecommitdiff
path: root/lib/PerlDaemon/RunModules.pm
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2011-05-24 07:10:21 +0000
committerPaul Buetow <paul@buetow.org>2011-05-24 07:10:21 +0000
commit28ea6c26d639f0e30535765258f0c698ef57b22e (patch)
tree6c499498a1a476df7d4ed085976ea380cbdcb249 /lib/PerlDaemon/RunModules.pm
parentb5920fb74fe0ce472da37dc4d6402392a69d42fa (diff)
initial working Time::HiRes interval handling
Diffstat (limited to 'lib/PerlDaemon/RunModules.pm')
-rw-r--r--lib/PerlDaemon/RunModules.pm14
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();
+ }
}
}
}