Compare commits

..

3 Commits

View File

@@ -163,7 +163,7 @@ class Endpoint(Thread):
database=self.config["database"]["db-name"] database=self.config["database"]["db-name"]
) as connection: ) as connection:
query = f"insert into `{self.db_table}` ({self.db_col_names}) values ({vals_str});" query = f"insert into `{self.db_table}` ({self.db_col_names}) values ({vals_str});"
journal.log(f"Executing query: {query}") journal.log(f"[{self.config['database']['db-user']}:{self.db_table}] Executing query: {query}")
with connection.cursor() as cursor: with connection.cursor() as cursor:
cursor.execute(query) cursor.execute(query)
@@ -178,10 +178,6 @@ class Endpoint(Thread):
else: else:
last_row = None last_row = None
while True:
# время следующего опроса
need_time = last_query + scan_rate
while True: while True:
try: try:
row = self.__mb_read_all_regs() row = self.__mb_read_all_regs()
@@ -201,19 +197,19 @@ class Endpoint(Thread):
if not equal: if not equal:
self.__insert_db_row(row) self.__insert_db_row(row)
last_row = row last_row = row
last_query = need_time
break
except Exception as ex: except Exception as ex:
journal.log(f"Exception: {ex}") journal.log(f"[{self.config['database']['db-user']}:{self.db_table}] Exception: {ex}")
time.sleep(1) # небольшая задержка, чтоб не спамить запросами
need_time = datetime.now() + scan_rate
# вычислим время до следующего опроса и подождем # вычислим время до следующего опроса и подождем
# время следующего опроса
need_time = last_query + scan_rate
curr_time = datetime.now() curr_time = datetime.now()
if need_time > curr_time: if need_time > curr_time:
delta = need_time - curr_time delta = need_time - curr_time
time.sleep(delta.seconds + (delta.microseconds / 1000000)) time.sleep(delta.seconds + (delta.microseconds / 1000000))
last_query = need_time
else:
last_query = datetime.now()
def run(self): def run(self):
# запускаем клиента модбас # запускаем клиента модбас