create_handler(batch_size: int = 20, flush_every: timedelta = timedelta(seconds=5), queue_max_size: int = 50000, max_flush_retries: int = 5) -> AsyncGenerator[MessageHandler, None]
Set up a message handler that will accumulate and send events to
the database every batch_size messages, or every flush_every interval to flush
any remaining messages.Event trimming/retention is handled by the db_vacuum service
(vacuum_old_events and vacuum_events_with_retention_overrides tasks).Args:
batch_size: Number of events to accumulate before flushing
flush_every: Maximum time between flushes
queue_max_size: Maximum events in queue before dropping new events
max_flush_retries: Consecutive flush failures before dropping events