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 | |
| parent | b5920fb74fe0ce472da37dc4d6402392a69d42fa (diff) | |
initial working Time::HiRes interval handling
| -rw-r--r-- | conf/perldaemon.conf | 4 | ||||
| -rw-r--r-- | lib/PerlDaemon/RunModules.pm | 14 |
2 files changed, 11 insertions, 7 deletions
diff --git a/conf/perldaemon.conf b/conf/perldaemon.conf index 735cb67..c0071a1 100644 --- a/conf/perldaemon.conf +++ b/conf/perldaemon.conf @@ -1,9 +1,9 @@ # Minimal Perl Daemon Sample Configuration daemon.wd = ./ -daemon.loopinterval = 3 +daemon.loopinterval = 1 daemon.alivefile = ./run/perldaemon.alive daemon.pidfile = ./run/perldaemon.pid daemon.logfile = ./log/perldaemon.log daemon.modules.dir = ./lib/PerlDaemonModules -daemon.modules.runiterval = 3 +daemon.modules.runinterval = 3 daemon.daemonize = no 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(); + } } } } |
