pythonpandasdataframeinfluxdb-pythoninfluxdb-2

Python InfluxDB2 - write_api.write(...) How to check for success?


I need to write historic data into InfluxDB (I'm using Python, which is not a must in this case, so I maybe willing to accept non-Python solutions). I set up the write API like this

write_api = client.write_api(write_options=ASYNCHRONOUS)

The Data comes from a DataFrame with a timestamp as key, so I write it to the database like this

result = write_api.write(bucket=bucket, data_frame_measurement_name=field_key, record=a_data_frame)

This call does not throw an exception, even if the InfluxDB server is down. result has a protected attribute _success that is a boolean in debugging, but I cannot access it from the code.

How do I check if the write was a success?


Solution

  • write_api.write() returns a multiprocessing.pool.AsyncResult or multiprocessing.pool.AsyncResult (both are the same).

    With this return object you can check on the asynchronous request in a couple of ways. See here: https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.AsyncResult

    If you can use a blocking request, then write_api = client.write_api(write_options=SYNCRONOUS) can be used.