ccproxy.claude_sdk.stream_worker¶
ccproxy.claude_sdk.stream_worker
¶
Stream worker for consuming Claude SDK messages and distributing via queue.
StreamWorker
¶
StreamWorker(
worker_id,
message_iterator,
session_id=None,
request_id=None,
session_client=None,
stream_handle=None,
)
Worker that consumes messages from Claude SDK and distributes via queue.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
worker_id
|
str
|
Unique identifier for this worker |
required |
message_iterator
|
AsyncIterator[Any]
|
Async iterator of SDK messages |
required |
session_id
|
str | None
|
Optional session ID for logging |
None
|
request_id
|
str | None
|
Optional request ID for logging |
None
|
session_client
|
SessionClient | None
|
Optional session client for state management |
None
|
stream_handle
|
StreamHandle | None
|
Optional stream handle for message lifecycle tracking |
None
|
Source code in ccproxy/claude_sdk/stream_worker.py
start
async
¶
Start the worker task.
Source code in ccproxy/claude_sdk/stream_worker.py
stop
async
¶
Stop the worker gracefully.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timeout
|
float
|
Maximum time to wait for worker to stop |
5.0
|
Source code in ccproxy/claude_sdk/stream_worker.py
wait_for_completion
async
¶
Wait for the worker to complete.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timeout
|
float | None
|
Optional timeout in seconds |
None
|
Returns:
Type | Description |
---|---|
bool
|
True if completed successfully, False if timed out |
Source code in ccproxy/claude_sdk/stream_worker.py
get_message_queue
¶
Get the message queue for creating listeners.
Returns:
Type | Description |
---|---|
MessageQueue
|
The worker's message queue |
drain_remaining
async
¶
Drain remaining messages without listeners.
This is useful for ensuring the stream completes properly even after all listeners have disconnected.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timeout
|
float
|
Maximum time to spend draining |
30.0
|
Returns:
Type | Description |
---|---|
int
|
Number of messages drained |
Source code in ccproxy/claude_sdk/stream_worker.py
get_stats
¶
Get worker statistics.
Returns:
Type | Description |
---|---|
dict[str, Any]
|
Dictionary of worker statistics |