feat(event): add daily cleanup for delivered/dead-letter events
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@@ -40,3 +41,19 @@ def test_mark_delivered(store):
|
|||||||
store.mark_delivered(event.event_id)
|
store.mark_delivered(event.event_id)
|
||||||
pending = store.fetch_pending(limit=10)
|
pending = store.fetch_pending(limit=10)
|
||||||
assert len(pending) == 0
|
assert len(pending) == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_cleanup_old_delivered_events(store):
|
||||||
|
old_event = OutboundEvent(EventType.HEARTBEAT, "bot-001", "rescue", {})
|
||||||
|
store.save(old_event)
|
||||||
|
store.mark_delivered(old_event.event_id)
|
||||||
|
|
||||||
|
# Modify created_at to be 11 days ago.
|
||||||
|
with store._connection() as conn:
|
||||||
|
conn.execute(
|
||||||
|
"UPDATE outbound_events SET created_at = ? WHERE id = ?",
|
||||||
|
(datetime.now(timezone.utc) - timedelta(days=11), old_event.event_id),
|
||||||
|
)
|
||||||
|
|
||||||
|
deleted = store.cleanup(10)
|
||||||
|
assert deleted == 1
|
||||||
|
|||||||
Reference in New Issue
Block a user