View | Details | Raw Unified | Return to bug 16105
Collapse All | Expand All

(-)a/Koha/Cache.pm (-31 / +16 lines)
Lines 84-126 sub new { Link Here
84
    $self->{'timeout'}   ||= 0;
84
    $self->{'timeout'}   ||= 0;
85
    $self->{'namespace'} ||= $ENV{MEMCACHED_NAMESPACE} || 'koha';
85
    $self->{'namespace'} ||= $ENV{MEMCACHED_NAMESPACE} || 'koha';
86
86
87
    if ( can_load( modules => { 'Cache::Memcached::Fast' => undef } ) ) {
87
    if ( $self->{'default_type'} eq 'memcached'
88
        _initialize_memcached($self);
88
        && can_load( modules => { 'Cache::Memcached::Fast' => undef } )
89
        if ( $self->{'default_type'} eq 'memcached'
89
        && _initialize_memcached($self)
90
            && defined( $self->{'memcached_cache'} ) )
90
        && defined( $self->{'memcached_cache'} ) )
91
        {
91
    {
92
            $self->{'cache'} = $self->{'memcached_cache'};
92
        $self->{'cache'} = $self->{'memcached_cache'};
93
        }
94
    }
93
    }
95
94
96
    if ( $self->{'default_type'} eq 'fastmmap'
95
    if ( $self->{'default_type'} eq 'fastmmap'
97
      && defined( $ENV{GATEWAY_INTERFACE} )
96
      && defined( $ENV{GATEWAY_INTERFACE} )
98
      && can_load( modules => { 'Cache::FastMmap' => undef } ) ) {
97
      && can_load( modules => { 'Cache::FastMmap' => undef } )
99
        _initialize_fastmmap($self);
98
      && _initialize_fastmmap($self)
100
        if ( defined( $self->{'fastmmap_cache'} ) )
99
      && defined( $self->{'fastmmap_cache'} ) )
101
        {
100
    {
102
            $self->{'cache'} = $self->{'fastmmap_cache'};
101
        $self->{'cache'} = $self->{'fastmmap_cache'};
103
        }
104
    }
102
    }
105
103
106
    if ( can_load( modules => { 'Cache::Memory' => undef, nocache => 1 } ) ) {
104
    # Unless memcache or fastmmap has already been picked, use memory_cache
107
        _initialize_memory($self);
108
        if ( $self->{'default_type'} eq 'memory'
109
            && defined( $self->{'memory_cache'} ) )
110
        {
111
            $self->{'cache'} = $self->{'memory_cache'};
112
        }
113
    }
114
115
    # Unless a default has already been picked, we go through in best-to-
116
    # least-best order, looking for something we can use. fastmmap_cache
117
    # is excluded because it doesn't support expiry in a useful way.
118
    unless ( defined( $self->{'cache'} ) ) {
105
    unless ( defined( $self->{'cache'} ) ) {
119
        foreach my $cachemember (qw(memcached_cache memory_cache )) {
106
        if ( can_load( modules => { 'Cache::Memory' => undef, nocache => 1 } )
120
            if ( defined( $self->{$cachemember} ) ) {
107
            && _initialize_memory($self) )
121
                $self->{'cache'} = $self->{$cachemember};
108
        {
122
                last;
109
                $self->{'cache'} = $self->{'memory_cache'};
123
            }
124
        }
110
        }
125
    }
111
    }
126
112
127
- 

Return to bug 16105