Update FollowerService, add forget method to RelationshipService call to reduce load when mass purging

This commit is contained in:
Daniel Supernault 2023-08-23 02:39:16 -06:00
parent a04ba18113
commit 347e4f59a3
No known key found for this signature in database
GPG Key ID: 0DEF1C662C9033F7
2 changed files with 14 additions and 2 deletions

View File

@ -20,10 +20,14 @@ class FollowerService
const FOLLOWING_KEY = 'pf:services:follow:following:id:';
const FOLLOWERS_KEY = 'pf:services:follow:followers:id:';
public static function add($actor, $target)
public static function add($actor, $target, $refresh = true)
{
$ts = (int) microtime(true);
RelationshipService::refresh($actor, $target);
if($refresh) {
RelationshipService::refresh($actor, $target);
} else {
RelationshipService::forget($actor, $target);
}
Redis::zadd(self::FOLLOWING_KEY . $actor, $ts, $target);
Redis::zadd(self::FOLLOWERS_KEY . $target, $ts, $actor);
Cache::forget('profile:following:' . $actor);

View File

@ -66,6 +66,14 @@ class RelationshipService
return self::get($aid, $tid);
}
public static function forget($aid, $tid)
{
Cache::forget('pf:services:follower:audience:' . $aid);
Cache::forget('pf:services:follower:audience:' . $tid);
self::delete($tid, $aid);
self::delete($aid, $tid);
}
public static function defaultRelation($tid)
{
return [