'websocket memory management

I am new to websockets and am pulling some data via the Coinbase websocket, upon every message I append to a pandas df in memory (I know this is bad practice, just trying to get a working version). Every minute I upload this df to TimescaleDB and clear out old data from the df.

I am noticing though that on occasion I am failing to upload the df and as a result I am not clearing the df of old values, and eventually the df consumes all the memory.

Is this a feature of websockets? Or is something off with my scheduler?

This is my scheduler for reference -

while True
       nowtime = datetime.now()
        floornow = pd.Timestamp(nowtime).floor(freq='1S')
        candlefloor = floornow.floor(freq=f'{candle_len}T')
        if (floornow == candlefloor):
            try: 
                upload_timescale()

                if (candlefloor != 'last datetime'):
                    timetowait = candle_len*60-(datetime.now() - candlefloor).total_seconds()-0.05
                    time.sleep(timetowait)

            except: 
                raise ValueError('bug in uploading to timescaledb')

         
        else:
            tts = candle_len*60-(nowtime - candlefloor).total_seconds() 
            if (tts > 2):
                time.sleep(tts)

What is the best way to handle a use case where I need to store websocket data intermittently to process, before cleaning it out?

Thanks!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source