X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2FServiceWiring.php;h=6e31e864d94e5958f3144f1d79b4ff016ede7d8e;hp=1ee17b2c61189afb970f45c88b5738ffd9af5eac;hb=377a5bd60d3854ab81df4c24bd3a3cdb18f4e241;hpb=2adcdd395b2a39b1afe1fa4631febf2da0d397ae diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 1ee17b2c61..6e31e864d9 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -372,14 +372,35 @@ return [ } $params = $mainConfig->get( 'WANObjectCaches' )[$id]; + + $logger = LoggerFactory::getInstance( $params['loggroup'] ?? 'objectcache' ); + $objectCacheId = $params['cacheId']; if ( !isset( $mainConfig->get( 'ObjectCaches' )[$objectCacheId] ) ) { throw new UnexpectedValueException( "Cache type \"$objectCacheId\" is not present in \$wgObjectCaches." ); } - $params['store'] = $mainConfig->get( 'ObjectCaches' )[$objectCacheId]; + $storeParams = $mainConfig->get( 'ObjectCaches' )[$objectCacheId]; + $store = ObjectCache::newFromParams( $storeParams ); + $logger->debug( 'MainWANObjectCache using store {class}', [ + 'class' => get_class( $store ) + ] ); + + $params['logger'] = $logger; + $params['cache'] = $store; + $params['secret'] = $params['secret'] ?? $mainConfig->get( 'SecretKey' ); + if ( !$mainConfig->get( 'CommandLineMode' ) ) { + // Send the statsd data post-send on HTTP requests; avoid in CLI mode (T181385) + $params['stats'] = $services->getStatsdDataFactory(); + // Let pre-emptive refreshes happen post-send on HTTP requests + $params['asyncHandler'] = [ DeferredUpdates::class, 'addCallableUpdate' ]; + } + + $class = $params['class']; + $instance = new $class( $params ); - return ObjectCache::newWANCacheFromParams( $params ); + '@phan-var WANObjectCache $instance'; + return $instance; }, 'MediaHandlerFactory' => function ( MediaWikiServices $services ) : MediaHandlerFactory {