как я могу определить асинхронный клиент только один раз - одно подключение к серверу, а затем работать с ним, но я не могу понять, как определить этот клиент глобальным для класса. Я просто догадался создавать новое соединение перед каждым использованием, но, конечно, это лишняя трата времени. Буде рад любым предложениям. Библиотека:
https://pypi.org/project/python-binance/
Рабочий код:
import asyncio
from binance import AsyncClient
class Binance:
async def get_trades(self):
client = await AsyncClient.create() # define two times(two connections) need only one
aggregate_trades = await client.get_all_tickers()
print(aggregate_trades)
await client.close_connection()
async def exchange_info(self):
client = await AsyncClient.create() # define two times(two connections) need only one
exchange_info = await client.get_exchange_info()
print(exchange_info)
await client.close_connection()
async def main():
b = Binance()
await asyncio.gather(b.get_trades(), b.exchange_info())
if __name__ == "__main__":
asyncio.run(main())
Должно быть (но не работает):
import asyncio
from binance import AsyncClient
class Binance:
def __init__(self):
asyncio.run(self.async_init())
async def async_init(self):
self.client = await AsyncClient.create() # define only one time because use much time
async def get_trades(self):
aggregate_trades = await self.client.get_all_tickers()
print(aggregate_trades)
async def exchange_info(self):
exchange_info = await self.client.get_exchange_info()
print(exchange_info)
async def main():
b = Binance()
await asyncio.gather(b.get_trades(), b.exchange_info())
if __name__ == "__main__":
asyncio.run(main())