noflo 无法关闭执行

noflo cannot shutdown execution

我正在尝试 运行 使用 noflo-filesystem and noflo-csv 读取 CSV 文件、解析它并将其写入文件的一些简单图形。 问题是程序在等待我不知道如何提供的东西:

graph.fbp

Read(filesystem/ReadFile) OUT -> CSV ParseCSV(csv/ConvertCsvToMatrix)
ParseCSV OUT -> IN Write(filesystem/WriteFile)    
'dump.csv' -> FILENAME Write(filesystem/WriteFile)
'data.csv' -> In Read

当我运行

.\node_modules\.bin\noflo-nodejs --graph graphs\graph.fbp --batch --register=false --debug

我得到:

DATA -> FILENAME Write() CONN
DATA -> FILENAME Write() DATA
DATA -> FILENAME Write() DISC
DATA -> IN Read() CONN
DATA -> IN Read() DATA
DATA -> IN Read() DISC
DATA -> ENCODING Read() CONN
DATA -> ENCODING Read() DATA
DATA -> ENCODING Read() DISC
Read() OUT -> CSV ParseCSV() CONN
Read() OUT -> CSV ParseCSV() < ..\python_code\web_app\TimeSeries.csv
Read() OUT -> CSV ParseCSV() DATA
Read() OUT -> CSV ParseCSV() > ..\python_code\web_app\TimeSeries.csv
Read() OUT -> CSV ParseCSV() DISC
ParseCSV() OUT -> IN Write() CONN
ParseCSV() OUT -> IN Write() DATA

然后程序就挂了

我试着用像这样的字符串输入 Write 的 IN 端口:

Read(filesystem/ReadFile) OUT -> CSV ParseCSV(csv/ConvertCsvToMatrix)
'some text' -> IN Write(filesystem/WriteFile)    
'dump.csv' -> FILENAME Write(filesystem/WriteFile)
'data.csv' -> In Read

这很好用:

DATA -> IN Write() CONN
DATA -> IN Write() DATA
DATA -> IN Write() DISC
DATA -> FILENAME Write() CONN
DATA -> FILENAME Write() DATA
DATA -> FILENAME Write() DISC
DATA -> IN Read() CONN
DATA -> IN Read() DATA
DATA -> IN Read() DISC
DATA -> ENCODING Read() CONN
DATA -> ENCODING Read() DATA
DATA -> ENCODING Read() DISC

谁能告诉我如何调试它?

问题是 csv/ConvertCsvToMatrix 没有在其输出端口上发送 disconnect。这导致 NoFlo 认为网络尚未完成 运行,因此进程未关闭。 the component 中的两个 .send() 调用都必须跟在 .disconnect() 调用之后。

这可以从 --debug 输出中看出,它以以下结尾: ParseCSV() OUT -> IN Write() CONN ParseCSV() OUT -> IN Write() DATA

与结尾为 DATA -> ENCODING Read() DISC

在 NoFlo 0.8 中,我们有一种新方法可以查看哪些进程使网络保持活动状态:

network.getActiveProcesses returns 当前活动进程的进程 ID 数组。

这对于查找行为不良的组件很有用。