Hi,
I'm using Python asyncio, everything is working fine. The only issue is, that the (*) writing data from queue into the database: df.to_sql causes the error:
"WebSocketClient:connection closed (ERR): sent 1011 (unexpected error) keepalive ping timeout; no close frame received."
Question: How can I write the dataframe ( df.to_sql ...) every xx:15 (e.g. 09:08:15) ?
Thanks for your suggestions.
Regards, Michel
I'm using Python asyncio, everything is working fine. The only issue is, that the (*) writing data from queue into the database: df.to_sql causes the error:
"WebSocketClient:connection closed (ERR): sent 1011 (unexpected error) keepalive ping timeout; no close frame received."
- The WebSocket puts every minute up to 10.000 items,
- within max 10 seconds ( e.g. between 09:08:00 - 09:08:10 )
- the methode writes every items separatelly into the database (*) , because I could not find a solution for collecting data for a minute and write them once pro minute.
- There is enough time for writing ( e.g. between 09:08:11 - 09:08:59 ).
Question: How can I write the dataframe ( df.to_sql ...) every xx:15 (e.g. 09:08:15) ?
Thanks for your suggestions.
Regards, Michel
async def start_processing_api_calls(self):
while True:
ticker = await self.api_call_queue.get()
try:
data = (
ticker.symbol,
ticker.volume
)
self.current_batch.append(data)
df = pd.DataFrame(self.current_batch)
df.columns = self.COLUMN_NAMES
df.to_sql(self.TableName, con=self.Engine, schema=self.SchemaName, if_exists='append', index=False)
self.current_batch = []
except Exception as e:
logging.error(f"Error processing API call for {ticker}: {e}")
finally:
self.api_call_queue.task_done()
