如果多个Python进程向InfluxDB写入数据,则只写入部分数据

问题描述 投票:0回答:1

我有多个 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) 

这个问题的原因可能是什么?异步/同步有问题吗?

谢谢

python cron synchronous influxdb-2 data-loss
1个回答
0
投票

您的推理似乎是正确的,修改

write_api()
以使用同步模式,并向代码中添加错误处理逻辑,然后重试。

© www.soinside.com 2019 - 2024. All rights reserved.