我有多个 Python 进程,通过
cron
在服务器 (RPI5) 上运行,它们从 Web API 读取数据,然后将其写入公共 InfluxDB 数据库 - 在同一个存储桶上。
但是,一些数据丢失了。写入 Influx 的代码是:
influxdb_client = InfluxDBClient(url=url, token=token, org=org)
...
def f(df):
write_api = influxdb_client.write_api()
...
record = []
for i in range(df.shape[0]):
point = Point(measurement).tag("location", ...).time(...)
for col in list(df.columns):
value = df.loc[i, col]
point = point.field(col, value)
record += [point]
write_api.write(bucket=bucket, org=org, record=record)
...
## Let df be a data.frame with 20-500 rows, and 10-20 columns.
f(df)
这个问题的原因可能是什么?异步/同步有问题吗?
谢谢
您的推理似乎是正确的,修改
write_api()
以使用同步模式,并向代码中添加错误处理逻辑,然后重试。