use base qw(Class::Accessor);
__PACKAGE__->mk_ro_accessors(
- qw( cache memcached_cache fastmmap_cache memory_cache ));
+ qw( cache memcached_cache ));
our %L1_cache;
our $L1_encoder = Sereal::Encoder->new;
$self->{'cache'} = $self->{'memcached_cache'};
}
- if ( $self->{'default_type'} eq 'fastmmap'
- && defined( $ENV{GATEWAY_INTERFACE} )
- && can_load( modules => { 'Cache::FastMmap' => undef } )
- && _initialize_fastmmap($self)
- && defined( $self->{'fastmmap_cache'} ) )
- {
- $self->{'cache'} = $self->{'fastmmap_cache'};
- }
-
$ENV{DEBUG} && carp "Selected caching system: " . ($self->{'cache'} // 'none');
return
return $self;
}
-sub _initialize_fastmmap {
- my ($self) = @_;
- my ($cache, $share_file);
-
- # Temporary workaround to catch fatal errors when: C4::Context module
- # is not loaded beforehand, or Cache::FastMmap init fails for whatever
- # other reason (e.g. due to permission issues - see Bug 13431)
- eval {
- $share_file = join( '-',
- "/tmp/sharefile-koha", $self->{'namespace'},
- C4::Context->config('hostname'), C4::Context->config('database') );
-
- $cache = Cache::FastMmap->new(
- 'share_file' => $share_file,
- 'expire_time' => $self->{'timeout'},
- 'unlink_on_exit' => 0,
- );
- };
- if ( $@ ) {
- warn "FastMmap cache initialization failed: $@";
- return;
- }
- return unless defined $cache;
- $self->{'fastmmap_cache'} = $cache;
- return $self;
-}
-
=head2 is_cache_active
Routine that checks whether or not a default caching method is active on this
recommends 'Archive::Zip', '1.30';
recommends 'Array::Utils', '0.5';
recommends 'CGI::Session::Driver::memcached', '0.04';
-recommends 'Cache::FastMmap', '1.34';
recommends 'DBD::SQLite2', '0.33';
recommends 'Devel::Cover', '0.89';
recommends 'File::Copy', '2.08';
libbusiness-isbn-perl,
libbusiness-issn-perl,
libbytes-random-secure-perl,
- libcache-fastmmap-perl,
libcache-memcached-fast-safe-perl,
libcache-memcached-perl,
libcgi-compile-perl,
libbusiness-isbn-perl,
libbusiness-issn-perl,
libbytes-random-secure-perl,
- libcache-fastmmap-perl,
libcache-memcached-fast-safe-perl,
libcache-memcached-perl,
libcgi-compile-perl,
skip "Cache not enabled", 1
unless ( $cache->is_cache_active() );
is( $destructorcount, 1, 'Destructor run exactly once' );
- # cleanup temporary file
- my $tmp_file = $cache->{ fastmmap_cache }->{ share_file };
- unlink $tmp_file if defined $tmp_file;
-
}
}