Python: wait for requests_futures.sessions to finish before continuing with the code flow -


my current code stands prints empty list, how wait requests , callbacks finish before continuing code flow?

from requests_futures.sessions import futuressession time import sleep  session = futuressession(max_workers=100)  = 1884001540 - 100 list = [] def testas(session, resp):     print(resp)     resp = resp.json()     print(resp['participants'][0]['stats']['kills'])     list.append(resp['participants'][0]['stats']['kills']) while < 1884001540:     url = "https://acs.leagueoflegends.com/v1/stats/game/na1/" + str(i)     temp = session.get(url, background_callback=testas)     += 1 print(list) 

from looking @ session.py in requests-futures-0.9.5.tar.gz necesssary create future in order wait result shown in code:

from requests_futures import futuressession  session = futuressession() # request run in background future = session.get('http://httpbin.org/get') # ... other stuff ... # wait request complete, if hasn't response = future.result() print('response status: {0}'.format(response.status_code)) print(response.content) 

as shown in readme.rst future can , should created every session.get() , waited on complete.

this might applied in code follows starting before while loop:

future = [] while < 1884001540:     url = "https://acs.leagueoflegends.com/v1/stats/game/na1/" + str(i)     future.append(session.get(url, background_callback=testas)     += 1 f in future:     response = f.result()     # following print statements may useful debugging     # print('response status: {0}'.format(response.status_code))     # print(response.content, "\n") print(list) 

i'm not sure how system respond large number (1884001440) of futures , way processing them in smaller groups 100 or 1000 @ time. might wise test script relatively small number of them @ beginning find out how fast return results.


Comments