http://www.mediawiki.org/wiki/Special:Code/MediaWiki/73329
Revision: 73329
Author: nikerabbit
Date: 2010-09-19 15:24:15 +0000 (Sun, 19 Sep 2010)
Log Message:
-----------
Reduce unnecessary cache purging
Modified Paths:
--------------
trunk/extensions/Translate/scripts/createMessageIndex.php
trunk/extensions/Translate/utils/MessageIndexRebuilder.php
Modified: trunk/extensions/Translate/scripts/createMessageIndex.php
===================================================================
--- trunk/extensions/Translate/scripts/createMessageIndex.php 2010-09-19
15:23:06 UTC (rev 73328)
+++ trunk/extensions/Translate/scripts/createMessageIndex.php 2010-09-19
15:24:15 UTC (rev 73329)
@@ -32,7 +32,5 @@
showUsage();
}
-$cache = new ArrayMemoryCache( 'groupstats' );
-$cache->clearAll();
MessageGroups::clearCache();
MessageIndexRebuilder::execute();
Modified: trunk/extensions/Translate/utils/MessageIndexRebuilder.php
===================================================================
--- trunk/extensions/Translate/utils/MessageIndexRebuilder.php 2010-09-19
15:23:06 UTC (rev 73328)
+++ trunk/extensions/Translate/utils/MessageIndexRebuilder.php 2010-09-19
15:24:15 UTC (rev 73329)
@@ -18,6 +18,13 @@
public static function execute() {
$groups = MessageGroups::singleton()->getGroups();
+ $filename = TranslateUtils::cacheFile(
'translate_messageindex.ser' );
+ if ( file_exists( $filename ) ) {
+ $old = unserialize( file_get_contents( $filename ) );
+ } else {
+ $old = array();
+ }
+
$hugearray = array();
$postponed = array();
@@ -41,8 +48,21 @@
self::checkAndAdd( $hugearray, $g, true );
}
- $filename = TranslateUtils::cacheFile(
'translate_messageindex.ser' );
file_put_contents( $filename, serialize( $hugearray ) );
+
+ $changes = array();
+ foreach ( array_diff_assoc( $hugearray, $old ) as $groups ) {
+ foreach ( (array) $groups as $group ) $changes[$group]
= true;
+ }
+
+ foreach ( array_diff_assoc( $old, $hugearray ) as $groups ) {
+ foreach ( (array) $groups as $group ) $changes[$group]
= true;
+ }
+
+ $cache = new ArrayMemoryCache( 'groupstats' );
+ foreach ( $changes as $key => $_ ) {
+ $cache->clearGroup( $key );
+ }
}
protected static function checkAndAdd( &$hugearray, $g, $ignore = false
) {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs