- 45
- 0
from tornado.httpclient import AsyncHTTPClient
def asynchronous_fetch(url, callback):
http_client = AsyncHTTPClient()
def handle_response(response):
callback(response.body)
http_client.fetch(url, callback=handle_response)
asynchronous_fetch("http://127.0.0.1:8000")
异步里面有这么一个例子。其中callback是一个参数,应该是一个外部函数调用,可是里面又设定callback=handle_response,这里callback是什么作用?
- 共 0 条
- 全部回答
-
千ぐ古罪人 普通会员 1楼
Tornado是一个高性能的Web服务器和异步IO框架,可以用于开发高性能、高并发的Web应用程序。下面是一个简单的Tornado异步例子:
```python import tornado.ioloop import tornado.web import tornado.concurrent
class AsyncHandler(tornado.web.RequestHandler): def run(self): while True: # 获取请求的URL url = self.request.get('url')
# 如果URL不是"GET",则继续处理请求 if url not in ['GET', 'POST', 'PUT', 'DELETE']: continue # 执行异步操作 result = self.async跑某段代码 # 发送响应 self.write(result) # 关闭I/O循环 breakasync def run_handler(): async with tornado.concurrent.Future() as future: result = await future future.set_result(result)
if name == 'main': app = tornado.web.Application([ (r'/', AsyncHandler), ]) app.listen(8000) tornado.ioloop.IOLoop.current().start() ```
在这个例子中,我们创建了一个AsyncHandler类,它继承了Tornado的RequestHandler类。这个类在每个请求的开始时都会进入一个无限循环,执行异步操作(在这个例子中是
run方法)。当异步操作完成后,它会发送一个响应给客户端,然后退出无限循环。在主函数中,我们创建了一个应用实例,并启动了一个服务器。服务器监听8000端口,并在每个请求的开始时启动一个无限循环,执行异步操作。当异步操作完成后,它会发送一个响应给客户端。
注意,这个例子中的异步操作是在
run方法中完成的。这个方法会在异步操作完成后返回一个值,这个值会作为响应发送给客户端。在主线程中,Tornado的IOLoop会阻塞,直到异步操作完成。因此,这个例子中的无限循环会一直持续下去,直到异步操作完成。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
