blow subscriptions cache when the user deletes a notice
darcs-hash:20080920175339-84dde-e46d0e7b86e0752e8331cdfba26257b3ff9e601c.gz
This commit is contained in:
parent
d53a4123f3
commit
a64330b77c
|
@ -84,6 +84,9 @@ class DeletenoticeAction extends DeleteAction {
|
|||
$replies->get('notice_id', $notice_id);
|
||||
|
||||
common_dequeue_notice($notice);
|
||||
if (common_config('memcached', 'enabled')) {
|
||||
$notice->blowSubsCache();
|
||||
}
|
||||
$replies->delete();
|
||||
$notice->delete();
|
||||
} else {
|
||||
|
|
|
@ -116,13 +116,20 @@ class Notice extends DB_DataObject
|
|||
# XXX: someone clever could prepend instead of clearing the cache
|
||||
|
||||
if (common_config('memcached', 'enabled')) {
|
||||
$notice->blowSubsCache();
|
||||
}
|
||||
|
||||
return $notice;
|
||||
}
|
||||
|
||||
function blowSubsCache() {
|
||||
$cache = new Memcache();
|
||||
if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
|
||||
$user = new User();
|
||||
|
||||
$user->query('SELECT id ' .
|
||||
'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
|
||||
'WHERE subscription.subscribed = ' . $notice->profile_id);
|
||||
'WHERE subscription.subscribed = ' . $this->profile_id);
|
||||
|
||||
while ($user->fetch()) {
|
||||
$cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
|
||||
|
@ -132,7 +139,4 @@ class Notice extends DB_DataObject
|
|||
unset($user);
|
||||
}
|
||||
}
|
||||
|
||||
return $notice;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user