package App::MadEye::Rule::Retry; use strict; use warnings; use base qw/App::MadEye::Rule/; use Cache::FileCache; use YAML; sub dispatch { my ($self, $context, $args) = @_; my $expire_time = $self->config->{expire_time} or die "missing expire_time"; my $cache_root = $self->config->{cache_root} or die "missing cache_root"; my $key = YAML::Dump($args->{target}); $context->log(info => "Retry: $args->{target}, $args->{plugin}"); my $cache = Cache::FileCache->new( { cache_root => $cache_root, } ); my $retry = $cache->get($key) ? 0 : 1; $cache->set($key => "Boofy", $expire_time); return $retry; } 1; # HTTPD とかは頻繁に再起動するので、一回ぐらい落ちてても無視してほしい。 __END__ =head1 NAME App::MadEye::Rule::Retry - please retry... =head1 SCHEMA type: map mapping: expire_time: type: int required: yes cache_root: type: str required: yes =head1 SEE ALSO L, L