mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 20:40:56 +01:00
Fix an issue where an excessively long TTL was computed for "not attending anything" event caches
Summary: Fixes T11894. Currently, if you aren't attending any events for a while, we can cache that you are free for the next 72 hours, even if you have an event in a few hours. Instead, only cache "user is free" until the next event, if one exists. Test Plan: Dumped cache TTLs, saw 52 minutes instead of ~4300 minutes with a near-upcoming event. Reviewers: chad Reviewed By: chad Maniphest Tasks: T11894 Differential Revision: https://secure.phabricator.com/D16937
This commit is contained in:
parent
a1025ca52e
commit
eac49e421a
1 changed files with 9 additions and 0 deletions
|
@ -498,7 +498,16 @@ final class PhabricatorPeopleQuery
|
|||
'eventPHID' => null,
|
||||
'availability' => null,
|
||||
);
|
||||
|
||||
// Cache that the user is available until the next event they are
|
||||
// invited to starts.
|
||||
$availability_ttl = $max_range;
|
||||
foreach ($events as $event) {
|
||||
$from = $event->getStartDateTimeEpochForCache();
|
||||
if ($from > $cursor) {
|
||||
$availability_ttl = min($from, $availability_ttl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Never TTL the cache to longer than the maximum range we examined.
|
||||
|
|
Loading…
Reference in a new issue