Skip to content

Commit 737db33

Browse files
authored
Merge pull request #60 from tutorcruncher/reduce-logging
Reduce logging - seems to be overloading memory
2 parents 1ccf4ed + 04b4220 commit 737db33

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

chronos/main.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
logfire.instrument_requests()
4545

4646
logging.config.dictConfig(config)
47-
47+
# Remove excessive sqlalchemy logging
48+
logging.getLogger('sqlalchemy').setLevel(logging.ERROR)
49+
logging.getLogger('sqlalchemy.engine.Engine').disabled = True
4850
app.include_router(main_router, prefix='')
4951
app.include_router(cronjob, prefix='')

chronos/worker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ async def delete_old_logs_job():
207207
if cache.get(DELETE_JOBS_KEY):
208208
return
209209
else:
210+
await cache.set(DELETE_JOBS_KEY, 'True', ex=1200)
210211
with logfire.span('Starting to delete old logs'):
211212
_delete_old_logs_job.delay()
212213

@@ -228,7 +229,6 @@ def get_count(date_to_delete_before: datetime) -> int:
228229
@celery_app.task
229230
def _delete_old_logs_job():
230231
with logfire.span('Started to delete old logs'):
231-
cache.set(DELETE_JOBS_KEY, 'True', ex=1200)
232232
with Session(engine) as db:
233233
# Get all logs older than 15 days
234234
date_to_delete_before = datetime.now(UTC) - timedelta(days=15)

tests/test_worker.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,3 +303,36 @@ def test_delete_old_logs(self, db: Session, client: TestClient, celery_session_w
303303
logs = db.exec(select(WebhookLog)).all()
304304
# The log from 15 days ago is seconds older than the check and thus sdoesn't get deleted
305305
assert len(logs) == 15
306+
307+
# Used for testing memory usage. Unnecessary for CI testing
308+
# @profile and install memory-profiler to use
309+
# def test_delete_old_logs_many(self, db: Session, client: TestClient, celery_session_worker):
310+
# eps = create_endpoint_from_dft_data()
311+
# for ep in eps:
312+
# db.add(ep)
313+
# db.commit()
314+
#
315+
# for i in range(0, 30):
316+
# whl = create_webhook_log_from_dft_data(
317+
# webhook_endpoint_id=ep.id,
318+
# timestamp=datetime.utcnow() - timedelta(days=i),
319+
# )
320+
# db.add(whl)
321+
# db.commit()
322+
#
323+
# for y in range(1000):
324+
# for i in range(1000):
325+
# whl = create_webhook_log_from_dft_data(
326+
# webhook_endpoint_id=ep.id,
327+
# timestamp=datetime.utcnow() - timedelta(days=20),
328+
# )
329+
# db.add(whl)
330+
# db.commit()
331+
#
332+
# logs = db.exec(select(WebhookLog)).all()
333+
# assert len(logs) == 1000030
334+
#
335+
# _delete_old_logs_job()
336+
# logs = db.exec(select(WebhookLog)).all()
337+
# # The log from 15 days ago is seconds older than the check and thus sdoesn't get deleted
338+
# assert len(logs) == 15

0 commit comments

Comments
 (0)