diff options
| author | Paul Buetow <paul@buetow.org> | 2024-12-11 10:16:03 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-12-11 10:16:03 +0200 |
| commit | a823fb02c13cf6fb1b6ea8af4a0eb5212e1815c6 (patch) | |
| tree | fbd243c53cf189f815ef5ee5004df81fd82b60b9 | |
| parent | 84515129c3ed934fda7b5c45f73b055a823ce2d9 (diff) | |
gzip compress results
| -rw-r--r-- | foostats.pl | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/foostats.pl b/foostats.pl index d40e514..a4ec41b 100644 --- a/foostats.pl +++ b/foostats.pl @@ -301,7 +301,8 @@ package Foostats::Aggregator { package Foostats::Outputter { use JSON; - use Sys::Hostname; + use Sys::Hostname; + use PerlIO::gzip; sub new ($class, %args) { my $self = bless \%args, $class; @@ -311,8 +312,8 @@ package Foostats::Outputter { sub last_processed_date ($self, $proto) { my $hostname = hostname(); - my @processed = glob $self->{stats_dir} . "/${proto}_????????.$hostname.json"; - my ($date) = @processed ? ($processed[-1] =~ /_(\d{8})\.$hostname\.json/) : 0; + my @processed = glob $self->{stats_dir} . "/${proto}_????????.$hostname.json.gz"; + my ($date) = @processed ? ($processed[-1] =~ /_(\d{8})\.$hostname\.json.gz/) : 0; return int($date); } @@ -321,11 +322,11 @@ package Foostats::Outputter { sub write_json ($self, $date_key, $stats) { my $hostname = hostname(); - my $path = $self->{stats_dir} . "/${date_key}.$hostname.json"; + my $path = $self->{stats_dir} . "/${date_key}.$hostname.json.gz"; my $json = encode_json $stats; say "Writing $path"; - open my $fd, '>', "$path.tmp" or die "$path.tmp: $!"; + open my $fd, '>:gzip', "$path.tmp" or die "$path.tmp: $!"; print $fd $json; close $fd; |
