From de48892243213618130c873f902fbbc953ee06cc Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Thu, 6 Jun 2024 22:59:04 +0200 Subject: [PATCH] Code - improving unique key fix for history database handler (#2402) * improving unique key fix * also bump timestamp along 1 sec --- changedetectionio/model/Watch.py | 4 +++- changedetectionio/tests/test_notification_errors.py | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/changedetectionio/model/Watch.py b/changedetectionio/model/Watch.py index e262ac4e..83bfb2e3 100644 --- a/changedetectionio/model/Watch.py +++ b/changedetectionio/model/Watch.py @@ -333,7 +333,9 @@ class model(dict): # Small hack so that we sleep just enough to allow 1 second between history snapshots # this is because history.txt indexes/keys snapshots by epoch seconds and we dont want dupe keys if self.__newest_history_key and int(timestamp) == int(self.__newest_history_key): - time.sleep(timestamp - self.__newest_history_key) + logger.warning(f"Timestamp {timestamp} already exists, waiting 1 seconds so we have a unique key in history.txt") + timestamp = str(int(timestamp) + 1) + time.sleep(1) threshold = int(os.getenv('SNAPSHOT_BROTLI_COMPRESSION_THRESHOLD', 1024)) skip_brotli = strtobool(os.getenv('DISABLE_BROTLI_TEXT_SNAPSHOT', 'False')) diff --git a/changedetectionio/tests/test_notification_errors.py b/changedetectionio/tests/test_notification_errors.py index c703ebd6..21eb21c6 100644 --- a/changedetectionio/tests/test_notification_errors.py +++ b/changedetectionio/tests/test_notification_errors.py @@ -9,9 +9,6 @@ def test_check_notification_error_handling(client, live_server): live_server_setup(live_server) set_original_response() - # Give the endpoint time to spin up - time.sleep(1) - # Set a URL and fetch it, then set a notification URL which is going to give errors test_url = url_for('test_endpoint', _external=True) res = client.post(