mirror of
https://github.com/langgenius/dify.git
synced 2026-03-04 23:36:20 +08:00
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""
|
|
CommandChannel protocol for GraphEngine command communication.
|
|
|
|
This protocol defines the interface for sending and receiving commands
|
|
to/from a GraphEngine instance, supporting both local and distributed scenarios.
|
|
"""
|
|
|
|
from typing import Protocol
|
|
|
|
from ..entities.commands import GraphEngineCommand
|
|
|
|
|
|
class CommandChannel(Protocol):
|
|
"""
|
|
Protocol for bidirectional command communication with GraphEngine.
|
|
|
|
Since each GraphEngine instance processes only one workflow execution,
|
|
this channel is dedicated to that single execution.
|
|
"""
|
|
|
|
def fetch_commands(self) -> list[GraphEngineCommand]:
|
|
"""
|
|
Fetch pending commands for this GraphEngine instance.
|
|
|
|
Called by GraphEngine to poll for commands that need to be processed.
|
|
|
|
Returns:
|
|
List of pending commands (may be empty)
|
|
"""
|
|
...
|
|
|
|
def send_command(self, command: GraphEngineCommand) -> None:
|
|
"""
|
|
Send a command to be processed by this GraphEngine instance.
|
|
|
|
Called by external systems to send control commands to the running workflow.
|
|
|
|
Args:
|
|
command: The command to send
|
|
"""
|
|
...
|