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
Post a Comment