异步兼容的套接字池

aiosocketpool的Python项目详细描述


Circle CIBlack Code Style

aiosocketpool公司

异步兼容套接字池。简单,紧凑,易于扩展。在

如果您的应用程序需要同时(并且经常)连接到多个远程主机,那么 保持连接打开并重新使用它们,而不是为 每一个请求。结合一个asyncio事件循环和一个套接字池可能是一个好方法!在

基于socketpool。在

需要Python 3.7或更高版本。

示例

使用asyncio库在后台线程中运行一个简单的TCP echo服务器。在

importasyncioimportthreading# start a new event loop running in a background threaddefrun_loop_forever(loop):loop.run_forever()loop=asyncio.new_event_loop()t=threading.Thread(name="BackgroundEventLoop",target=run_loop_forever,args=[loop],daemon=True)t.start()# run a tcp echo server using asyncio in the background event loopasyncdefecho_handler(reader,writer):writer.write(awaitreader.read(32))awaitwriter.drain()writer.close()asyncdefecho_server(tcp_port):server=awaitasyncio.start_server(echo_handler,"127.0.0.1",tcp_port)awaitserver.serve_forever()asyncio.run_coroutine_threadsafe(echo_server(12345),loop)

在主线程中创建一个新的TCP连接池,获取一个连接,并发送和接收数据。在

^{pr2}$

创建一组连接并同时运行它们。在

loop=asyncio.get_event_loop()tasks=[]for_inrange(25):tasks.append(loop.create_task(hello_world()))loop.run_until_complete(asyncio.gather(*tasks))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于java的原因,maven无法运行代码。lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/JsonMerge   Android项目中的java Creative SDK图像编辑器UI   java如何在Android Studio中使用DataOutputStream上传文件并将其他参数传递到web服务器   java倒计时服务打开时崩溃   java将RubyonRails项目转换为JRubyonRails项目   java我的图库意图是不显示图像?为什么?   java如何在春季启动时跳过mongodb/   java@Autowired在Spring中是如何实现的   甲骨文Akka java。util。同时发生的timeoutexception线程池频繁超时   java maven依赖项对spring启动应用程序有何影响?   java Firestore执行复合查询,未截获事件“已修改”   java ItemStreamException:未能初始化读取器,原因是:IllegalStateException:流已初始化。重新开放前关闭   java将空标记解组到集合的新实例中   使用AspectJ的java新手:无法调用aspect   java查找棋类游戏的所有组合   你为什么要这样做and==与Java中的equals方法不一样吗?   如何对使用JavaUUID的代码进行单元测试?