Слежу за появлениями исключения в базе. При стабильной связи все хорошо. Проблема возникает при потере связи с базой и происходит остановка работы скрипта. Запуск скрипта с отключенной сетью проходит корректно, после подключения сети скрипт остается работающим
Как правильно отловить исключение и перезапустить процесс при пропадание сети (связи с базой)?.
# -*- coding: utf-8 -*- import smtplib import fdb import os import threading import _thread from email.mime.text import MIMEText from email.header import Header def send_m(s): HOST = "......................" smtp_port=25 smtpObj = smtplib.SMTP(HOST, smtp_port) msg = MIMEText(s, 'plain', 'utf-8') msg['To'] = ".............." msg['From'] = ".........." msg['Subject'] = Header("............", 'utf-8') smtpObj.send_message(msg) def DB(): con = fdb.connect(dsn='............') return con def Start1(): try: print("Start") con=DB() conduit = con.event_conduit( ['EVENTS1','EVENTS2'] ) conduit.begin() e = conduit.wait() print (e) if e['EVENTS1']==1: cur = con.cursor() SELECT = ".............................." cur.execute(SELECT) rows = cur.fetchall() msg_t='.........................' print (msg_t) send_m(msg_t) if e['EVENTS2']==1: cur = con.cursor() SELECT = "..............." cur.execute(SELECT) rows = cur.fetchall() msg_t='........................' print (msg_t) send_m(msg_t) return conduit except: print("wait") pass def main(): while True: try: print("Начало") conduit=Start1() except Exception: pass print("Repear") conduit.close() if __name__== '__main__': while True: try: main() except: pass print("Repair1")
Ошибка при отключение сети
Exception in thread Thread-1:
Traceback (most recent call last):
File “C:\Python\Python37\lib\threading.py”, line 926, in _bootstrap_inner
self.run()
File “C:\Python\Python37\lib\threading.py”, line 870, in run
self._target(*self._args, **self._kwargs)
File “C:\Python\Python37\lib\site-packages\fdb\fbcore.py”, line 2154, in event_process
events = data.count_and_reregister()
File “C:\Python\Python37\lib\site-packages\fdb\fbcore.py”, line 2079, in count_and_reregister
self.__wait_for_events()
File “C:\Python\Python37\lib\site-packages\fdb\fbcore.py”, line 2065, in __wait_for_events
“Error while waiting for events:”)
fdb.fbcore.DatabaseError: ('Error while waiting for events:\n- SQLCODE: 0\n- unknown ISC error 0', 0, 0)