Added use of a FakeMemCachedClient in case memcached isn't working for some reason. Adds some speed as well as avoids a php segfault on certain setups when memcached is enabled but not available.
This commit is contained in:
parent
7f2a3294e5
commit
112115813a
1 changed files with 27 additions and 1 deletions
|
|
@ -52,8 +52,31 @@ class MemCachedClientforWiki extends memcached {
|
|||
}
|
||||
}
|
||||
|
||||
$wgMemc = new MemCachedClientforWiki( array('persistant' => true) );
|
||||
# FakeMemCachedClient imitates the API of memcached-client v. 0.1.2.
|
||||
# It acts as a memcached server with no RAM, that is, all objects are
|
||||
# cleared the moment they are set. All set operations succeed and all
|
||||
# get operations return null.
|
||||
|
||||
class FakeMemCachedClient {
|
||||
function add ($key, $val, $exp = 0) { return true; }
|
||||
function decr ($key, $amt=1) { return null; }
|
||||
function delete ($key, $time = 0) { return false; }
|
||||
function disconnect_all () { }
|
||||
function enable_compress ($enable) { }
|
||||
function forget_dead_hosts () { }
|
||||
function get ($key) { return null; }
|
||||
function get_multi ($keys) { return array_pad(array(), count($keys), null); }
|
||||
function incr ($key, $amt=1) { return null; }
|
||||
function replace ($key, $value, $exp=0) { return false; }
|
||||
function run_command ($sock, $cmd) { return null; }
|
||||
function set ($key, $value, $exp=0){ return true; }
|
||||
function set_compress_threshold ($thresh){ }
|
||||
function set_debug ($dbg) { }
|
||||
function set_servers ($list) { }
|
||||
}
|
||||
|
||||
if( $wgUseMemCached ) {
|
||||
$wgMemc = new MemCachedClientforWiki( array('persistant' => true) );
|
||||
$wgMemc->set_servers( $wgMemCachedServers );
|
||||
$wgMemc->set_debug( $wgMemCachedDebug );
|
||||
|
||||
|
|
@ -62,7 +85,10 @@ if( $wgUseMemCached ) {
|
|||
if ( !$wgMemc->set( "test", "", 0 ) ) {
|
||||
wfDebug( "Memcached failed setup test - connection error?\n" );
|
||||
$wgUseMemCached = false;
|
||||
$wgMemc = new FakeMemCachedClient();
|
||||
}
|
||||
} else {
|
||||
$wgMemc = new FakeMemCachedClient();
|
||||
}
|
||||
|
||||
wfProfileOut( "$fname-memcached" );
|
||||
|
|
|
|||
Loading…
Reference in a new issue