Fix to make blowing of replies stream cache more consistent when receiving replies. (Was being done at mail notify time instead of at save time for local replies; now moved to reply save time internally so it can't get forgotten)

This commit is contained in:
Brion Vibber 2010-04-23 06:55:46 -07:00
parent fd9d520aeb
commit 7bdea95ccb
2 changed files with 15 additions and 3 deletions

View File

@ -985,8 +985,6 @@ class Notice extends Memcached_DataObject
$reply->profile_id = $user->id; $reply->profile_id = $user->id;
$id = $reply->insert(); $id = $reply->insert();
self::blow('reply:stream:%d', $user->id);
} }
} }
@ -1052,6 +1050,7 @@ class Notice extends Memcached_DataObject
throw new ServerException("Couldn't save reply for {$this->id}, {$mentioned->id}"); throw new ServerException("Couldn't save reply for {$this->id}, {$mentioned->id}");
} else { } else {
$replied[$mentioned->id] = 1; $replied[$mentioned->id] = 1;
self::blow('reply:stream:%d', $mentioned->id);
} }
} }
} }
@ -1107,7 +1106,6 @@ class Notice extends Memcached_DataObject
foreach ($recipientIds as $recipientId) { foreach ($recipientIds as $recipientId) {
$user = User::staticGet('id', $recipientId); $user = User::staticGet('id', $recipientId);
if (!empty($user)) { if (!empty($user)) {
self::blow('reply:stream:%d', $recipientId);
mail_notify_attn($user, $this); mail_notify_attn($user, $this);
} }
} }

View File

@ -22,6 +22,20 @@ class Reply extends Memcached_DataObject
/* the code above is auto generated do not remove the tag below */ /* the code above is auto generated do not remove the tag below */
###END_AUTOCODE ###END_AUTOCODE
/**
* Wrapper for record insertion to update related caches
*/
function insert()
{
$result = parent::insert();
if ($result) {
self::blow('reply:stream:%d', $this->profile_id);
}
return $result;
}
function stream($user_id, $offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $max_id=0) function stream($user_id, $offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $max_id=0)
{ {
$ids = Notice::stream(array('Reply', '_streamDirect'), $ids = Notice::stream(array('Reply', '_streamDirect'),