Skip to content

Instantly share code, notes, and snippets.

@discosultan
Last active November 22, 2018 15:21
Show Gist options
  • Save discosultan/9d5e511f451c5a86b45cc43a97ae88b2 to your computer and use it in GitHub Desktop.
Save discosultan/9d5e511f451c5a86b45cc43a97ae88b2 to your computer and use it in GitHub Desktop.
import requests
assets = ['blockport', 'iota', 'bitcoin', 'litecoin', 'ethereum', 'bitcoin-cash', 'ripple',
'eos', 'neo', 'tron', 'aelf', 'monero']
for asset in assets:
res = requests.get(f'https://api.coincap.io/v2/assets/{asset}/history?interval=d1')
res.text
import concurrent.futures
import requests
def get_asset(asset):
res = requests.get(f'https://api.coincap.io/v2/assets/{asset}/history?interval=d1')
return res.text
with concurrent.futures.ThreadPoolExecutor() as executor:
assets = ['blockport', 'iota', 'bitcoin', 'litecoin', 'ethereum', 'bitcoin-cash', 'ripple',
'eos', 'neo', 'tron', 'aelf', 'monero']
for future in [executor.submit(get_asset, a) for a in assets]:
future.result()
import aiohttp
import asyncio
async def run():
async with aiohttp.ClientSession() as session:
async def get_asset(asset):
url = f'https://api.coincap.io/v2/assets/{asset}/history?interval=d1'
async with session.get(url) as res:
return await res.text()
assets = ['blockport', 'iota', 'bitcoin', 'litecoin', 'ethereum', 'bitcoin-cash', 'ripple',
'eos', 'neo', 'tron', 'aelf', 'monero']
await asyncio.gather(*(get_asset(a) for a in assets))
asyncio.run(run())
@discosultan
Copy link
Author

$ time python plain.py
real    0m2.888s
user    0m0.406s
sys     0m0.563s
$ time python threaded.py
real    0m1.051s
user    0m0.438s
sys     0m0.469s
$ time python async.py
real    0m1.074s
user    0m0.203s
sys     0m0.375s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment