feat(ingest): batch event writes and harden transport
This commit is contained in:
@@ -221,7 +221,7 @@ func (e *Emitter) Emit(ctx context.Context, event Event) error {
|
||||
|
||||
e.buffer = append(e.buffer, event)
|
||||
if len(e.buffer) >= e.bufferSize {
|
||||
return e.Flush(ctx)
|
||||
return e.flushLocked(ctx)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -235,6 +235,11 @@ func (e *Emitter) Flush(ctx context.Context) error {
|
||||
return fmt.Errorf("emitter is closed")
|
||||
}
|
||||
|
||||
return e.flushLocked(ctx)
|
||||
}
|
||||
|
||||
// flushLocked sends buffered events. Caller must hold e.mu.
|
||||
func (e *Emitter) flushLocked(ctx context.Context) error {
|
||||
if len(e.buffer) == 0 {
|
||||
return nil
|
||||
}
|
||||
@@ -281,7 +286,7 @@ func (e *Emitter) Close(ctx context.Context) error {
|
||||
}
|
||||
|
||||
if len(e.buffer) > 0 {
|
||||
_ = e.Flush(ctx)
|
||||
_ = e.flushLocked(ctx)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user