Beekeeper
view release on metacpan or search on metacpan
examples/dashboard/lib/Beekeeper/Service/Dashboard/Worker.pm view on Meta::CPAN
}
sub _save_state {
my ($self) = @_;
my $pool_id = $self->{_WORKER}->{pool_id};
($pool_id) = ($pool_id =~ m/^([\w-]+)$/); # untaint
my $tmp_file = "/tmp/beekeeper-dashboard-$pool_id-stats.dump";
# Avoid stampede when several workers are exiting simultaneously
return if (-e $tmp_file && (stat($tmp_file))[9] == time());
# Lock file because several workers may try to write simultaneously to it
sysopen(my $fh, $tmp_file, O_RDWR|O_CREAT) or return;
flock($fh, LOCK_EX | LOCK_NB) or return;
truncate($fh, 0) or return;
print $fh encode_json([
$self->{services_1s},
$self->{services_5s},
$self->{services_2m},
lib/Beekeeper/Worker/Extension/SharedCache.pm view on Meta::CPAN
sub _save_state {
my $self = shift;
return unless ($self->{synced});
my $id = $self->{id};
my ($pool_id) = ($self->{pool_id} =~ m/^([\w-]+)$/); # untaint
my $tmp_file = "/tmp/beekeeper-sharedcache-$pool_id-$id.dump";
# Avoid stampede when several workers are exiting simultaneously
return if (-e $tmp_file && (stat($tmp_file))[9] == time());
# Lock file because several workers may try to write simultaneously to it
sysopen(my $fh, $tmp_file, O_RDWR|O_CREAT) or return;
flock($fh, LOCK_EX | LOCK_NB) or return;
truncate($fh, 0) or return;
print $fh encode_json( $self->dump );
close($fh);
}
lib/Beekeeper/Worker/Extension/SharedCache.pm view on Meta::CPAN
sub _load_state {
my $self = shift;
my $id = $self->{id};
my ($pool_id) = ($self->{pool_id} =~ m/^([\w-]+)$/); # untaint
my $tmp_file = "/tmp/beekeeper-sharedcache-$pool_id-$id.dump";
return unless (-e $tmp_file);
# Do not load stale dumps
return if ($self->{max_age} && (stat($tmp_file))[9] < time() - $self->{max_age});
local($/);
open(my $fh, '<', $tmp_file) or die "Couldn't read $tmp_file: $!";
my $data = <$fh>;
close($fh);
local $@;
my $dump = eval { decode_json($data) };
return if $@;
( run in 1.550 second using v1.01-cache-2.11-cpan-49f99fa48dc )