random-worker

This commit is contained in:
2022-11-27 22:04:03 +03:00
parent d1caded052
commit 700e5b2e6e
4 changed files with 35 additions and 8 deletions

View File

@@ -80,6 +80,7 @@ async def search_user_chats(by, messages: set, slug: str, limit, offset):
if body_like:
# search in all messages in all user's chats
for c in cids:
# FIXME: user redis scan here
mmm = set(await load_messages(c, limit, offset))
for m in mmm:
if body_like in m["body"]:

View File

@@ -1,9 +1,7 @@
import sqlalchemy as sa
from sqlalchemy import and_, select
from sqlalchemy import and_
from auth.authenticate import login_required
from base.orm import local_session
from base.resolvers import mutation, query
from orm import Shout
from orm.topic import Topic, TopicFollower
from services.zine.topics import TopicStorage
from services.stat.topicstat import TopicStat
@@ -110,8 +108,4 @@ async def topic_unfollow(user, slug):
@query.field("topicsRandom")
async def topics_random(_, info, amount=12):
with local_session() as session:
q = select(Topic).join(Shout).group_by(Topic.id).having(sa.func.count(Shout.id) > 2).order_by(
sa.func.random()).limit(amount)
random_topics = list(map(lambda result_item: result_item.Topic, session.execute(q)))
return random_topics
return TopicStorage.get_random_topics(amount)