Skip to content

Commit 9034639

Browse files
committed
Fix: handle the case when a scheduled query wasn't run before
1 parent 2707e24 commit 9034639

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

redash/models.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -833,8 +833,12 @@ def outdated_queries(cls):
833833
now = utils.utcnow()
834834
outdated_queries = {}
835835
for query in queries:
836-
if should_schedule_next(query.latest_query_data.retrieved_at, now,
837-
query.schedule, query.schedule_failures):
836+
if query.latest_query_data:
837+
retrieved_at = query.latest_query_data.retrieved_at
838+
else:
839+
retrieved_at = now
840+
841+
if should_schedule_next(retrieved_at, now, query.schedule, query.schedule_failures):
838842
key = "{}:{}".format(query.query_hash, query.data_source_id)
839843
outdated_queries[key] = query
840844

tests/test_models.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ def test_outdated_queries_skips_unscheduled_queries(self):
7979

8080
self.assertNotIn(query, queries)
8181

82+
def test_outdated_queries_skips_unscheduled_queries(self):
83+
query = self.factory.create_query(schedule='60')
84+
queries = models.Query.outdated_queries()
85+
86+
self.assertNotIn(query, queries)
87+
8288
def test_outdated_queries_works_with_ttl_based_schedule(self):
8389
two_hours_ago = utcnow() - datetime.timedelta(hours=2)
8490
query = self.factory.create_query(schedule="3600")

0 commit comments

Comments
 (0)