У меня проблема с pymongo на raspberry pi 3. Дело в том, что когда я запускаю скрипт нормально (я имею в виду подключение к интернету и соединение с базой данных, поэтому нет проблем с записью в базу данных) я отключаю Wi-Fiили ethernet от 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()