Issue #5: Implemented Cache::FastMmap as caching module. #8
50
F1DataBot.pm
50
F1DataBot.pm
@ -12,6 +12,7 @@ use Encode;
|
|||||||
use FindBin;
|
use FindBin;
|
||||||
|
|
||||||
# CPAN packages
|
# CPAN packages
|
||||||
|
use Cache::FastMmap;
|
||||||
use JSON;
|
use JSON;
|
||||||
use Log::Log4perl;
|
use Log::Log4perl;
|
||||||
use YAML;
|
use YAML;
|
||||||
@ -21,6 +22,12 @@ package F1DataBot;
|
|||||||
|
|
||||||
# Constants and initalisations
|
# Constants and initalisations
|
||||||
Log::Log4perl->init("$FindBin::Bin/log.conf");
|
Log::Log4perl->init("$FindBin::Bin/log.conf");
|
||||||
|
my $CACHE = Cache::FastMmap->new(
|
||||||
|
share_file => '/tmp/f1_bot',
|
||||||
|
serializer => 'json',
|
||||||
|
unlink_on_exit => 0,
|
||||||
|
expire_time => 86400,
|
||||||
|
);
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $Type, %Param ) = @_;
|
my ( $Type, %Param ) = @_;
|
||||||
@ -186,12 +193,20 @@ sub statistics {
|
|||||||
my $StatIdentifier = $+{statidentifier};
|
my $StatIdentifier = $+{statidentifier};
|
||||||
given ($StatIdentifier) {
|
given ($StatIdentifier) {
|
||||||
when ('standings') {
|
when ('standings') {
|
||||||
my $Standings = json POST(
|
my $Standings;
|
||||||
join( '/',
|
if ( $CACHE->get('driver_standings') ) {
|
||||||
( $Self->{URL}{Ergast}, 'current', 'driverStandings.json' )
|
$Standings = $CACHE->get('driver_standings');
|
||||||
),
|
}
|
||||||
{}
|
else {
|
||||||
);
|
$Standings = json POST(
|
||||||
|
join( '/',
|
||||||
|
( $Self->{URL}{Ergast}, 'current', 'driverStandings.json' )
|
||||||
|
),
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
$CACHE->set('driver_standings', $Standings);
|
||||||
|
}
|
||||||
|
|
||||||
my %DriverStandings;
|
my %DriverStandings;
|
||||||
my $DriverStandingsFormatted = sprintf( "%2s %3s %-5s%7s\n",
|
my $DriverStandingsFormatted = sprintf( "%2s %3s %-5s%7s\n",
|
||||||
"#", "No.", "Code", "Points" );
|
"#", "No.", "Code", "Points" );
|
||||||
@ -235,16 +250,19 @@ sub statistics {
|
|||||||
my $StatIdentifier = $+{statidentifier};
|
my $StatIdentifier = $+{statidentifier};
|
||||||
given ($StatIdentifier) {
|
given ($StatIdentifier) {
|
||||||
when ('standings') {
|
when ('standings') {
|
||||||
my $Standings = json POST(
|
my $Standings;
|
||||||
join(
|
if ( $CACHE->get('constructor_standings') ) {
|
||||||
'/',
|
$Standings = $CACHE->get('constructor_standings');
|
||||||
(
|
}
|
||||||
$Self->{URL}{Ergast}, 'current',
|
else {
|
||||||
'constructorStandings.json'
|
$Standings = json POST(
|
||||||
)
|
join( '/',
|
||||||
),
|
( $Self->{URL}{Ergast}, 'current', 'constructorStandings.json' )
|
||||||
{}
|
),
|
||||||
);
|
{}
|
||||||
|
);
|
||||||
|
$CACHE->set('constructor_standings', $Standings);
|
||||||
|
}
|
||||||
$Self->{LogObject}
|
$Self->{LogObject}
|
||||||
->info( 'statistics: Fetched standings are '
|
->info( 'statistics: Fetched standings are '
|
||||||
. Dumper($Standings) );
|
. Dumper($Standings) );
|
||||||
|
Loading…
Reference in New Issue
Block a user