caching-author-fix
Some checks failed
Deploy to core / deploy (push) Failing after 1m10s

This commit is contained in:
Untone 2024-02-22 13:01:38 +03:00
parent 187c14d6b0
commit 0f038ac6d7
2 changed files with 6 additions and 37 deletions

View File

@ -133,12 +133,8 @@ async def load_author_with_stats(q):
.count()
)
author.stat['rating'] = likes_count - dislikes_count
author.stat['rating_shouts'] = count_author_shouts_rating(
session, author.id
)
author.stat['rating_comments'] = count_author_comments_rating(
session, author.id
)
author.stat['rating_shouts'] = count_author_shouts_rating(session, author.id)
author.stat['rating_comments'] = count_author_comments_rating(session, author.id)
author.stat['commented'] = comments_count
return author
@ -168,19 +164,7 @@ async def get_author_by_user_id(user_id: str):
q = select(Author).filter(Author.user == user_id)
author = await load_author_with_stats(q)
if author:
await redis.execute(
'set',
redis_key,
json.dumps(
{
'id': author.id,
'name': author.name,
'slug': author.slug,
'pic': author.pic,
'bio': author.bio,
}
),
)
update_author(author)
return author

View File

@ -9,24 +9,9 @@ from resolvers.stat import add_author_stat_columns, add_topic_stat_columns
from services.rediscache import redis
async def update_author(author):
async def update_author(author: Author, ttl = 25 * 60 * 60):
redis_key = f'user:{author.user}:author'
await redis.execute(
'SET',
redis_key,
json.dumps(
{
'id': author.id,
'name': author.name,
'slug': author.slug,
'pic': author.pic,
'bio': author.bio,
'stat': author.stat,
}
),
)
await redis.execute('EXPIRE', redis_key, 25 * 60 * 60)
await redis.execute('SETEX', redis_key, ttl, json.dumps(author.dict()))
@event.listens_for(Author, 'after_insert')
@ -85,7 +70,7 @@ async def update_follows_for_user(
follows[f'{entity_type}s'] = [
e for e in follows[f'{entity_type}s'] if e['id'] != entity['id']
]
await redis.execute('set', redis_key, json.dumps(follows))
await redis.execute('SET', redis_key, json.dumps(follows))
async def handle_author_follower_change(connection, author_id, follower_id, is_insert):