Я не уверен, что это лучшее решение, но на ум приходит то, что вам нужно, чтобы скрипт постоянно работал некоторое время l oop. За пределами l oop установите переменную, которая представляет последний индекс строки в таблице.
Каждые x секунд подсчитывают количество строк в таблице, которую вы ожидаете, и затем, если количество строк превышает вашу ранее установленную переменную, запустите вашу функцию до go и получите любые данные. Наконец, обновите переменную последней строки новым значением.
last_row = 10 # example that there are currently 10 rows in the DB table
while True:
# query database for number of rows "SELECT count(id) from table"
result = db.fetchone()
if result > last_row:
get_data()
last_row = result
time.sleep(10)
Это решение будет означать, что ваш скрипт всегда работает, но выполняет сбор данных только тогда, когда вы получаете новую запись в вашей БД