Use two concurrent queries to avoid client waiting
This commit is contained in:
parent
5632447263
commit
a13002b9f0
1 changed files with 13 additions and 10 deletions
|
@ -541,22 +541,25 @@ class Session(Connection):
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
select
|
select
|
||||||
message.*
|
message_id
|
||||||
from
|
from
|
||||||
newsgroup_message,
|
newsgroup_message
|
||||||
message
|
|
||||||
where
|
where
|
||||||
message.id = newsgroup_message.message_id
|
newsgroup_id = %s
|
||||||
and newsgroup_message.newsgroup_id = %s
|
and """ + msgrange.where('message_id')
|
||||||
"""
|
|
||||||
|
|
||||||
sql += " and " + msgrange.where('message.id')
|
cr = self.db.execute(sql, (self.newsgroup.id,))
|
||||||
|
|
||||||
cr = self.db.query_sql(Message, sql, (self.newsgroup.id,))
|
|
||||||
|
|
||||||
first = True
|
first = True
|
||||||
|
|
||||||
for message in cr.each():
|
while True:
|
||||||
|
row = cr.fetchone()
|
||||||
|
|
||||||
|
if row is None:
|
||||||
|
break
|
||||||
|
|
||||||
|
message = self.db.get(Message, {'id': row[0]})
|
||||||
|
|
||||||
if first:
|
if first:
|
||||||
first = False
|
first = False
|
||||||
self.respond(success)
|
self.respond(success)
|
||||||
|
|
Loading…
Add table
Reference in a new issue