X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FDaemon.pm;h=82da6b8924791d53388d43191b4b8d26023bc6b4;hb=82657f577602c92f72c1030465ada83053e95e8d;hp=156d7435adcff83e3fa81478aee6b7fc2fb69f39;hpb=a552265610c628aa30a1195497aa08d3c79f0a37;p=gruntmaster-daemon.git diff --git a/lib/Gruntmaster/Daemon.pm b/lib/Gruntmaster/Daemon.pm index 156d743..82da6b8 100644 --- a/lib/Gruntmaster/Daemon.pm +++ b/lib/Gruntmaster/Daemon.pm @@ -16,11 +16,15 @@ use Sys::Hostname qw/hostname/; use Time::HiRes qw/time/; use Try::Tiny; use Log::Log4perl qw/get_logger/; +use LWP::UserAgent; use constant PAGE_SIZE => 10; ################################################## +my $ua = LWP::UserAgent->new; +my @purge_hosts = exists $ENV{PURGE_HOSTS} ? split ' ', $ENV{PURGE_HOSTS} : (); + sub safe_can_nodie { my ($type, $sub, $name) = @_; @@ -37,6 +41,13 @@ sub safe_can { safe_can_nodie @_ or get_logger->logdie("No such \l$type: '$name'"); } +sub purge { + for my $host (@purge_hosts) { + my $req = HTTP::Request->new(PURGE => "http://$host$_[0]"); + $ua->request($req) + } +} + sub process{ my $job = shift; @@ -112,6 +123,11 @@ sub process{ PUBLISH genpage => "$log/@{[$page - 1]}.html"; PUBLISH genpage => "$log/$page.html"; PUBLISH genpage => "$log/@{[$page + 1]}.html"; + + purge "/$log/job/$job"; + purge "/$log/"; + purge "/$log/st"; + purge "/$log/$_" for $page - 1, $page, $page + 1; } sub got_job{