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

Reply via email to