diff options
| -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(); + } } } } |
