代码如下:

import tornado.ioloop
import tornado.web
from tornado.httpclient import HTTPClient, AsyncHTTPClientclass MainHandler(tornado.web.RequestHandler):# 同步def get(self):h_c = HTTPClient()res = h_c.fetch("http://www.baidu.com")# print(res)# passself.write("Hello, world")class TestHandler(tornado.web.RequestHandler):# 异步async def get(self):http_client = AsyncHTTPClient()try:res = await http_client.fetch("http://www.baidu.com")except Exception as e:print("Error: %s" % e)else:passself.write("Hello, world1")def make_app():return tornado.web.Application([(r"/test", TestHandler),(r"/", MainHandler),])if __name__ == "__main__":app = make_app()app.listen(8888)tornado.ioloop.IOLoop.current().start()

浏览器打开:

http://127.0.0.1:8888/

完整报错:

ERROR:tornado.application:Uncaught exception GET / (127.0.0.1)
HTTPServerRequest(protocol='http', host='127.0.0.1:8888', method='GET', uri='/', version='HTTP/1.1', remote_ip='127.0.0.1')
Traceback (most recent call last):
  File "/home/appleyuchi/anaconda3/envs/Python3.6/lib/python3.6/site-packages/tornado/web.py", line 1590, in _execute
    result = method(*self.path_args, **self.path_kwargs)
  File "test.py", line 8, in get
    h_c = HTTPClient()
  File "/home/appleyuchi/anaconda3/envs/Python3.6/lib/python3.6/site-packages/tornado/httpclient.py", line 95, in __init__
    gen.coroutine(lambda: async_client_class(**kwargs)))
  File "/home/appleyuchi/anaconda3/envs/Python3.6/lib/python3.6/site-packages/tornado/ioloop.py", line 571, in run_sync
    self.start()
  File "/home/appleyuchi/anaconda3/envs/Python3.6/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 132, in start
    self.asyncio_loop.run_forever()
  File "/home/appleyuchi/anaconda3/envs/Python3.6/lib/python3.6/asyncio/base_events.py", line 432, in run_forever
    'Cannot run the event loop while another loop is running')
RuntimeError: Cannot run the event loop while another loop is running
ERROR:tornado.access:500 GET / (127.0.0.1) 3.29ms

根据官方文档:

Changed in version 5.0: Due to limitations in asyncio, it is no longer possible to use the synchronous HTTPClient while an IOLoop is running. Use AsyncHTTPClient instead.

解决方案:

Tornado同步api和异步api混写一例

RuntimeError: Cannot run the event loop while another loop is running相关推荐

  1. python报错:Cannot run the event loop while another loop is running

    我是在TensorFlow的教程中发现的报错: 执行这行代码会报错:Cannot run the event loop while another loop is running 解决方法: 在 ju ...

  2. python3 异步错误 asyncio.Semaphore RuntimeError: Task got Future attached to a different loop

    错误现象 asyncio.Semaphore RuntimeError: Task got Future attached to a different loop asyncio.Semaphore ...

  3. Geant 4中Run、Event、Step等数据提取(初学笔记)

    Geant 4运行中涉及到Run.Event.Step.Track等过程,其ID.位置.时间.能量.几何体.材料.粒子类型.反应类型等各类数据均可被提取.数据提取方式较多,如SensitiveDete ...

  4. mysql nest loop伪代码_Nested Loop Join

    我们都知道SQL的join关联表的使用方式,但是这次聊的是实现join的算法,join有三种算法,分别是Nested Loop Join,Hash join,Sort Merge Join. MySQ ...

  5. loop与for loop分别实现乘法口诀表

    loop与for loop分别实现乘法口诀表 set serveroutput on; declare i number(4,0):=1; j number(4,0); begin loop exit ...

  6. Loop Pipelining and Loop Unrolling

    文章目录 Loop Pipelining canci pipelining and unrolling improve hardware function's performance by explo ...

  7. Error:The run destination iPhone X is not valid for Running the scheme 'ProjectName'. - iOS

    今天在调试一个项目的时候,发现一个异常,该项目有阵子没有调试了,之前一切正常今天重新编译竟然失败,心情很是爆炸,度娘了一下也没找到合适的解决方案,异常提示也描述的很模糊,让人很是费解,不过还好静下来调 ...

  8. at定时任务:Can't open /var/run/atd.pid to signal atd. No atd running?

    尝试了at命令,发现报错.原因服务没有启动 [root@test yum.repos.d]# at 15:05 at> init 6 at> job 1 at Mon Jul 29 15: ...

  9. VIT ③The for loop、while loop in Python

    For 循环 For循环是迭代对象元素的常用方法(在第一个示例中,列表) 具有可迭代方法的任何对象都可以在for循环中使用. python的一个独特功能是代码块不被{} 或begin,end包围.相反 ...

最新文章

  1. adb 提示adb server version(31) doesn't match this client(40) 解决办法
  2. Intel不争气,7nm再延后两年将彻底落败
  3. java 9999 符号_java 9999(示例代码)
  4. TiDB 官方设计文档翻译(二)
  5. linux基础--Bash逻辑控制语句
  6. C++ Map简单介绍 ,比如添加元素、删除元素和打印元素
  7. java猜拳论文_Java人机猜拳实现的思路及方法实例
  8. 深度优先搜索(DFS)和广度优先搜索(BFS)探究
  9. v540 检测的问题
  10. 一文了解 Java 应用程序性能优化指南
  11. Brownie Slicing(二分枚举答案)
  12. PX4避障和轨迹规划(3DVFH*)
  13. vue 挂载点 实例 模板
  14. BeanUtils简介
  15. PAgP协议与LACP协议
  16. 易语言网络验证UI界面源码
  17. UE4虚幻引擎更改项目缓存路径
  18. 疫情下,裁员补偿标准不可不知
  19. CPP QT实现excel的冻结窗格
  20. ViacomCBS与Sky合作在欧洲推出Paramount+

热门文章

  1. 零基础建站第一季视频分享
  2. mysql 优化20点
  3. poj 3417 树形dp+LCA
  4. poj 2749 2-SAT问题
  5. 分组中查询不符合条件的组
  6. Android开发 常用命令
  7. 安卓JNI使用OpenCV
  8. OpenCV_Python教程 系列!
  9. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理
  10. [IE技巧] 让IE 以全屏模式启动