Skip to content

Commit 097bdcd

Browse files
committed
Run every hour to make overheads low
1 parent 847d116 commit 097bdcd

File tree

1 file changed

+20
-19
lines changed

1 file changed

+20
-19
lines changed

chronos/worker.py

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ async def lifespan(app: FastAPI):
200200
scheduler.shutdown()
201201

202202

203-
@scheduler.scheduled_job('cron', hour=0, minute=0)
203+
@scheduler.scheduled_job('interval', hours=1)
204204
async def delete_old_logs_job():
205205
"""
206206
We run cron job at midnight every day that wipes all WebhookLogs older than 15 days
@@ -227,29 +227,30 @@ def get_count(date_to_delete_before: datetime) -> int:
227227

228228

229229
@celery_app.task
230-
@logfire.no_auto_trace
231230
def _delete_old_logs_job():
232231
# with logfire.span('Started to delete old logs'):
233232
with Session(engine) as db:
234233
# Get all logs older than 15 days
235234
date_to_delete_before = datetime.now(UTC) - timedelta(days=15)
236-
# with logfire.span(
237-
# 'Deleting webhooks for {date_to_delete_before=}', date_to_delete_before=date_to_delete_before
238-
# ):
239235
count = get_count(date_to_delete_before)
240-
delete_limit = 4999
241-
while count > 0:
242-
app_logger.info(f'Deleting {count} logs')
243-
logs_to_delete = db.exec(
244-
select(WebhookLog).where(WebhookLog.timestamp < date_to_delete_before).limit(delete_limit)
245-
).all()
246-
delete_statement = delete(WebhookLog).where(WebhookLog.id.in_(log.id for log in logs_to_delete))
247-
db.exec(delete_statement)
248-
db.commit()
249-
count -= delete_limit
250-
251-
del logs_to_delete
252-
del delete_statement
253-
gc.collect()
236+
with logfire.span(
237+
'Deleting {count=} webhooks before {date_to_delete_before=}',
238+
date_to_delete_before=date_to_delete_before,
239+
count=count,
240+
):
241+
delete_limit = 4999
242+
while count > 0:
243+
app_logger.info(f'Deleting {count} logs')
244+
logs_to_delete = db.exec(
245+
select(WebhookLog).where(WebhookLog.timestamp < date_to_delete_before).limit(delete_limit)
246+
).all()
247+
delete_statement = delete(WebhookLog).where(WebhookLog.id.in_(log.id for log in logs_to_delete))
248+
db.exec(delete_statement)
249+
db.commit()
250+
count -= delete_limit
251+
252+
del logs_to_delete
253+
del delete_statement
254+
gc.collect()
254255

255256
cache.delete(DELETE_JOBS_KEY)

0 commit comments

Comments
 (0)