Bsitu has uploaded a new change for review.
https://gerrit.wikimedia.org/r/125366
Change subject: Use merge() to update cache
......................................................................
Use merge() to update cache
Change-Id: I53123e305b24ab82ded49eee7190d9b61b1bd22f
---
M includes/ArticleMetadata.php
1 file changed, 14 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PageTriage
refs/changes/66/125366/1
diff --git a/includes/ArticleMetadata.php b/includes/ArticleMetadata.php
index 9ba723d..c6854e5 100644
--- a/includes/ArticleMetadata.php
+++ b/includes/ArticleMetadata.php
@@ -57,12 +57,21 @@
$pageId = $this->mPageId;
}
- // @TODO: use merge() to make this atomic
foreach ( $pageId as $val ) {
- $data = $wgMemc->get( $keyPrefix . '-' . $val );
- if ( $data !== false ) {
- $wgMemc->set( $keyPrefix . '-' . $val,
array_merge( $data, $update ), 86400 );
- }
+ $wgMemc->merge(
+ $keyPrefix . '-' . $val,
+ function( BagOStuff $cache, $key, $data ) use(
$update ) {
+ // data exists in cache, update the data
+ if ( $data !== false ) {
+ return array_merge( $data,
$update );
+ // data doesn't exist in cache, don't
do anything
+ // with the partial update
+ } else {
+ return false;
+ }
+ },
+ 86400
+ );
}
}
--
To view, visit https://gerrit.wikimedia.org/r/125366
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I53123e305b24ab82ded49eee7190d9b61b1bd22f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PageTriage
Gerrit-Branch: master
Gerrit-Owner: Bsitu <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits