bug 2534 fixed: clean (as clean as possible with MySQL+MyISAM) handle of

concurrency on user cache refresh. No more error when regenerating several
thumbnails at once.


git-svn-id: http://piwigo.org/svn/branches/2.3@12747 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2011-12-16 13:52:40 +00:00
parent a1b59897a1
commit 2372b25a1c
3 changed files with 16 additions and 10 deletions
+8 -2
View File
@@ -446,6 +446,9 @@ DELETE FROM '.USER_CACHE_CATEGORIES_TABLE.'
WHERE user_id = '.$userdata['id'];
pwg_query($query);
// Due to concurrency issues, we ask MySQL to ignore errors on
// insert. This may happen when cache needs refresh and that Piwigo is
// called "very simultaneously".
mass_inserts
(
USER_CACHE_CATEGORIES_TABLE,
@@ -454,7 +457,8 @@ DELETE FROM '.USER_CACHE_CATEGORIES_TABLE.'
'user_id', 'cat_id',
'date_last', 'max_date_last', 'nb_images', 'count_images', 'count_categories'
),
$user_cache_cats
$user_cache_cats,
array('ignore' => true)
);
@@ -464,8 +468,10 @@ DELETE FROM '.USER_CACHE_TABLE.'
WHERE user_id = '.$userdata['id'];
pwg_query($query);
// for the same reason as user_cache_categories, we ignore error on
// this insert
$query = '
INSERT INTO '.USER_CACHE_TABLE.'
INSERT IGNORE INTO '.USER_CACHE_TABLE.'
(user_id, need_update, cache_update_time, forbidden_categories, nb_total_images,
image_access_type, image_access_list)
VALUES