我有一个龙卷风应用程序:
if __name__ == "__main__":
app = make_app()
app.listen(8090)
tornado.ioloop.IOLoop.current().start()
如何使长时间运行的任务同时运行?
具体来说,我有一个redis pubsub,它将通知我的tornado应用程序更新的授权令牌。
我试过这个:
tornado.ioloop.IOLoop.current().run_in_executor(None, redis_pubsub.subscribe_to_valid_tokens)
因为我从不等待未来,它似乎不运行函数,所以我有点纠结于“正确”的方法。
我想知道我是否应该用一个单独的python线程来实现这一点(或者利用带有队列的多处理库?
async/await有更好的用法/结构吗?
1条答案
按热度按时间ttvkxqim1#
我必须在一个没有垃圾收集的类中存储对redis对象和pubsub对象的引用。另外,pubsub的run-in-thread方法非常有用!