python-2.7 - 树莓派 3 上的 Pymongo 等待太多以引发错误
问题描述
我在树莓派 3 上遇到了 pymongo 的问题。问题是当我正常运行脚本时(我的意思是,我有互联网连接和数据库连接,所以在数据库上写入没有问题)我断开了 wi-fi 或以太网Raspberry 为了得到一个错误并稍后处理它,但是,当我断开互联网时,脚本在 pymongo 的“insert_one”命令中停止,就像等到它再次连接互联网......所以......错误引发了几个几分钟后,比如 25 分钟,这对我不利,因为我需要立即得到错误,所以我可以在 csv 文件上做一些节省。
from pymongo import MongoClient
from pymongo import errors
from pymongo import client_options
from pymongo import settings
url = 'emaweather.hopto.org'
port = 27017
client_options.ClientOptions.server_selection_timeout = 1
try:
client = MongoClient(url, port)
db = client['weather-mongo']
print('Cliente: ' ,client)
print('DB: ', db)
except errors.ConnectionFailure as e:
print('Error: ', e)
def main():
while True:
try:
__readCSV()
utc_now = pytz.utc.localize(datetime.datetime.utcnow())
pst_now = utc_now.astimezone(pytz.timezone("America/Asuncion"))
dateNowIsoFormat = pst_now.isoformat()
print (dateNowIsoFormat)
temperature,pressure,humidity = readBME280All()
dbDataTemp = temperature
print (dbDataTemp)
dbDataHum = round(humidity,2)
print (dbDataHum)
dbDataPress = round(pressure,2)
print (dbDataPress)
dbData = {"date": dateNowIsoFormat, "temp": dbDataTemp, "hum": dbDataHum, "press": dbDataPress}
db.data.insert_one(dbData)
print('Writed on MongoDB')
time.sleep(5)
except errors.PyMongoError as error:
print (error)
if __name__=="__main__":
main()
解决方案
推荐阅读
- python-3.x - 下一个按钮引发错误
- python - 置换 Kronecker 产品串
- kubernetes - GKE:停止实例时出现 502
- c - AES CTR OpenSSL 命令行与 EVP_aes_128_ctr C 代码不匹配
- python - MatPlotlib 中的方形气泡图
- c++ - 如何使用 vindex 和 _mm_i32gather_epi32 缩放来收集元素?
- reactjs - 流程:不推荐使用存在类型,如何键入 React 元素?
- php - Slim App Session - session_start() 在一个页面上工作,但在另一个页面上返回 false
- java - 如何在 Java 中旋转 imageIcon
- angular - 如何以角度5获取上一页URL