summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-04-23 06:55:46 -0700
committerBrion Vibber <brion@pobox.com>2010-04-23 06:55:46 -0700
commit7bdea95ccbf31cf9c9191a93c44dedb22f1fd3df (patch)
tree8404166f5472daf677424f2304bda983b4e5a421
parentfd9d520aeb52f7f3a3fe7c242fbe16078de1bc6e (diff)
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)
-rw-r--r--classes/Notice.php4
-rw-r--r--classes/Reply.php14
2 files changed, 15 insertions, 3 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 4cf12fc6f..c4a316888 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -985,8 +985,6 @@ class Notice extends Memcached_DataObject
$reply->profile_id = $user->id;
$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}");
} else {
$replied[$mentioned->id] = 1;
+ self::blow('reply:stream:%d', $mentioned->id);
}
}
}
@@ -1107,7 +1106,6 @@ class Notice extends Memcached_DataObject
foreach ($recipientIds as $recipientId) {
$user = User::staticGet('id', $recipientId);
if (!empty($user)) {
- self::blow('reply:stream:%d', $recipientId);
mail_notify_attn($user, $this);
}
}
diff --git a/classes/Reply.php b/classes/Reply.php
index 659e04c92..dc6296bda 100644
--- a/classes/Reply.php
+++ b/classes/Reply.php
@@ -22,6 +22,20 @@ class Reply extends Memcached_DataObject
/* the code above is auto generated do not remove the tag below */
###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)
{
$ids = Notice::stream(array('Reply', '_streamDirect'),