}
if ( !isset( $this->mQueryCache[$url] ) ) {
- global $wgMemc;
-
- $key = $this->getLocalCacheKey( get_class( $this ), $target, md5( $url ) );
- $data = $wgMemc->get( $key );
-
- if ( !$data ) {
- $data = self::httpGet( $url );
-
- if ( !$data ) {
- return null;
+ $data = ObjectCache::getMainWANInstance()->getWithSetCallback(
+ $this->getLocalCacheKey( get_class( $this ), $target, md5( $url ) ),
+ $cacheTTL,
+ function () use ( $url ) {
+ return ForeignAPIRepo::httpGet( $url );
}
+ );
- $wgMemc->set( $key, $data, $cacheTTL );
+ if ( !$data ) {
+ return null;
}
if ( count( $this->mQueryCache ) > 100 ) {