2017-09-19 24 views
0

我正在嘗試Requests_Threads庫,我已經知道它將數據以我想要的方式返回給我,但它給了我一個Process finished with exit code 0並在繼續前退出。任何人使用這個庫,並找出它?使用Requests_Threads和AsyncIO運行後退出

from requests_threads import AsyncSession 
import asyncio 

class apis: 
    def __init__(self): 
     self.session=AsyncSession() 
     self.main_out=self.session.run(self.main) 
     print('still alive') 

    async def main(self): 
     rs = [] 
     for _ in range(100): 
      rs.append(await self.sub('thing')) 

     return[ (x[0].json(),x[1]) for x in rs] 

    async def sub(self,key): 
     return await self.session.get('http://httpbin.org/get'),key 

回答

0

所以,我結束了使用aiohttp

1000的解決方案被採用標準的要求花了2分4秒,使用aiohttp花了56秒時,或超過54%,減少了一點。

import aiohttp 
import asyncio 
from datetime import datetime 

class apis: 
    def __init__(self): 
     self.session=aiohttp.ClientSession() 
     self.loop=asyncio.get_event_loop() 
     self.main_out=self.loop.run_until_complete(self.main()) 

    async def main(self): 
     rs = [] 
     for _ in range(1000): 
      rs.append(await self.loop.create_task(self.sub('foo'))) 
     return rs 

    async def sub(self,key): 
     return await self.session.get('http://httpbin.org/get'),key,datetime.now() 
相關問題