alexgolec / tda-api

A TD Ameritrade API client for Python. Includes historical data for equities and ETFs, options chains, streaming order book data, complex order construction, and more.
https://tda-api.readthedocs.io
MIT License
1.26k stars 335 forks source link

Closing stream connection #311

Open alienbrett opened 2 years ago

alienbrett commented 2 years ago

I'm writing an application that runs a stream client before stopping it later, and I was frustrated with the stream client lifecycle.

If you're having problems with tasks being cancelled on event loop closure with Asyncio, try the following line after unsubscribing (or just after you stop handling stream messages):


if stream_client._socket is not None:
    await stream_client._socket.close()

I spent hours trying to figure out where my async flow was failing, and I realized far too late that it was due to bad socket handling with this library.

alexgolec commented 2 years ago

Can you please provide some code that demonstrates this issue? I'd like to fix it but I need to be able to trigger the problem on command to do so.

https://tda-api.readthedocs.io/en/latest/help.html#provide-adequate-information