Szybsze wykonywanie funkcji

Szybsze wykonywanie funkcji
Sebastian G
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:7
0

Witam. Potrzebuję zrobić asynchroniczną lub podobną funkcję, która szybko wykona polecenia. Przykładowy kod:

Kopiuj
import ccxt

binance = ccxt.binance()
    for pair in binance.load_markets(): // example: pair = BTC/USDT or ETH/BTC ...
        print(binance.fetch_order_book(pair, 5))

Potrzebuję tą funkcję napisać asynchronicznie. Kiedyś używałem async i aiohttp i wyglądało to tak:

Kopiuj
async def main():
    async with aiohttp.ClientSession() as session:
        await asyncio.wait([fetch(self, session, url) for url in urls])
    print('Done')

async def fetch(session: aiohttp.ClientSession, url: str):
    async with session.get(url) as content:
        content = await content.json()
        print(f"Requested: {url}")

def run():
    loop = asyncio.get_event_loop()
    try:
        loop.run_until_complete(main())
        loop.run_until_complete(asyncio.sleep(2.0))
    finally:
        loop.close()

semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
0

https://github.com/ccxt/ccxt/issues/3568 tu masz przykład odwołania do asynchronicznego api.

Sebastian G
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:7
0

Własnie znalazłem to i ciągle mi błędy wyskakują. Dasz rade spróbować przerobić ten skrypt z linka na to co potrzebuję?

Kopiuj
import ccxt

binance = ccxt.binance()
    for pair in binance.load_markets(): // example: pair = BTC/USDT or ETH/BTC ...
        print(binance.fetch_order_book(pair, 5))

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.