2

我正在使用 tornado 2.3 (python 2.7.3) 并且正在对 postgresql (9.2.1) 数据库运行大量查询。这大约需要 8 秒才能完成,我想知道是否可以使用回调(使用 momoko 连接器到 postgres)来逐步更新页面的查询结果。我在 tornado demos 文件夹中找到了 facebook 示例,但这需要单击才能刷新 - 但我希望在检索到查询结果时调用 UI 模块进行渲染。

当前的(未完成的)代码如下所示:

    results = OrderedDict()
    cursor = yield gen.Task(self.db.execute, 'select location, string_of_words from source;')
    for verse in cursor.fetchall():
        queries = {}
        id = 0
        for word in verse[4].split(' '):
            queries[id] = ['select worddetailsbyword(%s)',(word,)]
            id += 1
        cursors = yield gen.Task(self.db.batch, queries)
        for key,cursor in cursors.items():
            worddata = {}
            if verse[0] not in results.keys():
                results[verse[0]] = []                                              
            results[verse[0]].append(cursor.fetchone())

    for loc, words in results.items():
        self.write("<h2>%s</h2>" % loc)
        for word in words:
            self.write("<div>%s</div>"%word[0])

与其等待所有这些完成,然后在模板中呈现,我可以实现一个回调并让每个查询完成都命中该回调并更新网页吗?

4

0 回答 0