StreamGraph::toGraphviz
语法
StreamGraph::toGraphviz()
详情
以 Graphviz 格式输出流图拓扑结构。
例子
// g 是流图
g.toGraphviz()
/*
当 g 尚未提交
digraph G {
"4: demo.orca_table.one_min_indicators" [shape=box];
"3: engine_3" [shape=ellipse];
"2: demo.orca_table.one_min_bar" [shape=box];
"0: demo.orca_table.trade" [shape=box];
"1: engine_1" [shape=ellipse];
"3: engine_3" -> "4: demo.orca_table.one_min_indicators";
"2: demo.orca_table.one_min_bar" -> "3: engine_3";
"0: demo.orca_table.trade" -> "1: engine_1";
"1: engine_1" -> "2: demo.orca_table.one_min_bar";
}
*/
/*
当 g 已经提交
digraph G {
subgraph cluster_graph_2 { subgraph cluster_task_0 { label="task_0" "6: channel_6" [shape=ellipse]; } }
subgraph cluster_graph_2 { subgraph cluster_task_0 { label="task_0" "3: engine_3" [shape=ellipse]; } }
subgraph cluster_graph_2 { subgraph cluster_task_0 { label="task_0" "4: demo.orca_table.one_min_indicators" [shape=box]; } }
subgraph cluster_graph_1 { subgraph cluster_task_2 { label="task_2" "2: demo.orca_table.one_min_bar" [shape=box]; } }
subgraph cluster_graph_0 { subgraph cluster_task_1 { label="task_1" "0: demo.orca_table.trade" [shape=box]; } }
subgraph cluster_graph_1 { subgraph cluster_task_2 { label="task_2" "1: engine_1" [shape=ellipse]; } }
subgraph cluster_graph_1 { subgraph cluster_task_2 { label="task_2" "5: channel_5" [shape=ellipse]; } }
"6: channel_6" -> "3: engine_3" [label="FORWARD"];
"3: engine_3" -> "4: demo.orca_table.one_min_indicators" [label="FORWARD"];
"1: engine_1" -> "2: demo.orca_table.one_min_bar" [label="FORWARD"];
"0: demo.orca_table.trade" -> "5: channel_5" [label="FORWARD"];
"5: channel_5" -> "1: engine_1" [label="FORWARD"];
"2: demo.orca_table.one_min_bar" -> "6: channel_6" [label="FORWARD"];
}
*/