Files
BitLogger/docs/api/runtime-sink-pending-count.md
T
2026-06-13 22:38:14 +08:00

76 lines
2.1 KiB
Markdown

---
name: runtime-sink-pending-count
group: api
category: runtime
update-time: 20260613
description: Read the current queued backlog count from a RuntimeSink.
key-word:
- runtime
- sink
- queue
- public
---
## Runtime-sink-pending-count
Read the current queued backlog count from a `RuntimeSink`. This is the direct sink-level queue metric behind configured logger pending-count behavior.
### Interface
```moonbit
pub fn RuntimeSink::pending_count(self : RuntimeSink) -> Int {
```
#### input
- `self : RuntimeSink` - Runtime sink whose current queue backlog should be inspected.
#### output
- `Int` - Current number of pending queued records.
### Explanation
Detailed rules explaining key parameters and behaviors
- Queue-wrapped runtime variants forward to the wrapped queue sink's `pending_count()` value.
- Plain console and plain file runtime variants return `0` because they do not own a pending queue here.
- This is a point-in-time metric and may change immediately after it is read.
- This method is the direct sink-level API used by `ConfiguredLogger::pending_count(...)`.
### How to Use
Here are some specific examples provided.
#### When Need Direct Queue Backlog Visibility
When code is working with a `RuntimeSink` value directly and wants queue pressure information:
```moonbit
let pending = sink.pending_count()
```
In this example, backlog is read from the runtime sink without going through a logger wrapper.
#### When Verify Manual Drain Progress
When drain loops should observe remaining queue backlog directly:
```moonbit
ignore(sink.drain(max_items=8))
ignore(sink.pending_count())
```
In this example, the metric helps confirm whether manual queue draining reduced backlog.
### Error Case
e.g.:
- If the runtime sink is not queue-backed, the method simply returns `0`.
- If callers need the higher-level logger wrapper API, use `ConfiguredLogger::pending_count()` instead.
### Notes
1. Use this helper for simple direct queue visibility on `RuntimeSink` values.
2. Pair it with `dropped_count()` when investigating queue pressure and loss.