我有一个 Tornado 应用程序:
if __name__ == "__main__":
app = make_app()
app.listen(8090)
tornado.ioloop.IOLoop.current().start()
如何让长时间运行的任务同时运行?
具体来说,我有一个 redis pubsub ,它将通知我的 Tornado 应用程序更新的授权 token 。
我尝试了这个:
tornado.ioloop.IOLoop.current().run_in_executor(None, redis_pubsub.subscribe_to_valid_tokens)
由于我从未等待过Future,因此它似乎没有运行该功能,因此我对执行此操作的“正确”方法有些困惑。
最佳答案
我必须在不收集垃圾的类中存储对redis对象和pubsub对象的引用。另外,pubsub的run_in_thread方法非常有帮助!
关于python-3.x - 如何与 Tornado IOLoop同时运行长时间运行的阻止功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62052360/