Skip to content

Commit 304c833

Browse files
Adding db indices
1 parent f22df90 commit 304c833

File tree

3 files changed

+35
-15
lines changed

3 files changed

+35
-15
lines changed

scraper.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,12 @@ def signal_handler(sig, frame):
3838
signal.signal(signal.SIGTERM, signal_handler)
3939

4040
if __name__ == "__main__":
41-
scheduler.add_job(scrape_schedules, "interval", seconds=300, id="scrape_schedules")
42-
scheduler.add_job(scrape_videos, "interval", seconds=43200, id="scrape_videos")
41+
scheduler.add_job(
42+
scrape_schedules, "interval", seconds=60 * 60, id="scrape_schedules"
43+
)
44+
scheduler.add_job(
45+
scrape_videos, "interval", seconds=60 * 60 * 24, id="scrape_videos"
46+
)
4347
scheduler.start()
4448
scrape_schedules()
4549
scrape_videos()

src/database.py

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,10 @@
1616

1717
# Initialize MongoDB client
1818
if use_tls:
19-
# client_options = {
20-
# "maxPoolSize": 100,
21-
# "minPoolSize": 10,
22-
# "waitQueueTimeoutMS": 2000,
23-
# "connectTimeoutMS": 30000,
24-
# "socketTimeoutMS": 45000,
25-
# "serverSelectionTimeoutMS": 30000
26-
# }
2719
client = MongoClient(
2820
os.getenv("MONGO_URI"),
2921
tls=True,
3022
tlsCAFile=file_name,
31-
# **client_options
3223
)
3324
else:
3425
client = MongoClient(os.getenv("MONGO_URI"))
@@ -57,3 +48,28 @@ def keep_connection_alive():
5748

5849
# Access the database
5950
db = client[os.getenv("MONGO_DB", "score_db")]
51+
52+
53+
def setup_database_indexes():
54+
"""Set up MongoDB indexes for optimal query performance"""
55+
try:
56+
game_collection = db["game"]
57+
58+
# Create single field indexes for commonly queried fields
59+
game_collection.create_index([("sport", 1)], background=True)
60+
game_collection.create_index([("date", 1)], background=True)
61+
game_collection.create_index([("gender", 1)], background=True)
62+
63+
# Create compound indexes for common query combinations
64+
game_collection.create_index([("sport", 1), ("gender", 1)], background=True)
65+
66+
# Index for sorting operations
67+
game_collection.create_index([("date", -1)], background=True)
68+
69+
print("✅ MongoDB indexes created successfully")
70+
except Exception as e:
71+
print(f"❌ Failed to create MongoDB indexes: {e}")
72+
raise e
73+
74+
75+
setup_database_indexes()

src/models/game.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def __init__(
3535
box_score=None,
3636
score_breakdown=None,
3737
team=None,
38-
utc_date=None
38+
utc_date=None,
3939
):
4040
self.id = id if id else str(ObjectId())
4141
self.city = city
@@ -70,7 +70,7 @@ def to_dict(self):
7070
"box_score": self.box_score,
7171
"score_breakdown": self.score_breakdown,
7272
"team": self.team,
73-
"utc_date": self.utc_date
73+
"utc_date": self.utc_date,
7474
}
7575

7676
@staticmethod
@@ -92,5 +92,5 @@ def from_dict(data) -> None:
9292
box_score=data.get("box_score"),
9393
score_breakdown=data.get("score_breakdown"),
9494
team=data.get("team"),
95-
utc_date=data.get("utc_date")
96-
)
95+
utc_date=data.get("utc_date"),
96+
)

0 commit comments

Comments
 (0)