Async Http Client

Tornado——异步,websocket

不问归期 提交于 2021-01-31 01:05:53
模拟tornado两个socket请求 同步执行 按部就班的依次执行,知道上一个步骤执行完才执行下一步。 # coding:utf-8 import time def long_io(): # 长io操作 print("开始执行IO操作") time.sleep(2) print("完成IO操作") def req_a(): # 模拟请求a print('开始处理请求req_a') long_io() # 执行一个长io操作 print('完成处理请求req_a') def req_b(): # 模拟请求b print('开始处理请求req_b') print('完成处理请求req_b') def main(): # 模拟tornado框架,处理两个请求 req_a() req_b() if __name__ == "__main__": main() 结果: 开始处理请求req_a 开始执行IO操作 完成IO操作 完成处理请求req_a 开始处理请求req_b 完成处理请求req_b 异步执行 对于耗时的过程,我们将其交给别人(如其另外一个线程)去执行,而我们继续往下处理,当别人执行完耗时操作后再将结果反馈给我们,这就是我们所说的异步。 1)引入线程和回调函数 # coding:utf-8 import time,threading # 引入多线程 thread_list = [

tornado学习笔记day08-tornado中的异步

我怕爱的太早我们不能终老 提交于 2020-03-17 10:06:08
某厂面试归来,发现自己落伍了!>>> 概述 应为epoll主要用来解决网络的并发问题,所以tornado中的异步也是主要体现在网络的IO异步上,即异步web请求 tornado.httpclient.AsyncHTTPClient tornado提供异步web请求客户端,可以用来进行异步web请求, 这个客户端和服务端是相对来说的,当tornado的Handler去其他位置去请求资源的时候,他就是客户端 fetch(request, callback=None) 用于执行一个web请求,并异步响应返回一个tornado.httpclient.httpresponse request可以是一个url,也可以是一个tornado.httpclient.httprequest对象 如果插入的是url会自动生成一个request对象 HTTPRequest 概述 HTTP请求类,该类的构造函数可以接收参数 参数 url: 字符串类型,要访问的网址,必传 method: 字符串类型,HTTP请求方式 headers: 字典类型,或者HTTPHeaders类型 body: HTTP请求体 HTTPResponse 响应类 属性 code: 状态码 reason: 状态码的描述 body: 响应的数据 error: 异常 @tornado.web.asynchronous 不关闭通讯的通道 ''

聊聊nacos的HttpHealthCheckProcessor

泄露秘密 提交于 2019-11-30 03:36:25
序 本文主要研究一下nacos的HttpHealthCheckProcessor HealthCheckProcessor nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckProcessor.java public interface HealthCheckProcessor { /** * Run check task for service * * @param task check task */ void process(HealthCheckTask task); /** * Get check task type, refer to enum HealthCheckType * * @return check type */ String getType(); } HealthCheckProcessor接口定义了process、getType方法 HttpHealthCheckProcessor nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HttpHealthCheckProcessor.java @Component public class